[javaEE] tomcat内部连接池详解编程语言

META-INF的目录下,新建context.xml

在程序中获取数据源,通过jndi,这个jndi必须在Servlet中才能获取,并且需要配置web.xml使servlet一启动就拿到数据源

context.xml

<?xml version="1.0" encoding="utf-8"?> 
<Context> 
    <Resource 
    name="mySource" 
    type="javax.sql.DataSource" 
    username="root" 
    password="root" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql:///java" 
    maxActive="8" 
    maxIdle="4" 
    /> 
</Context>
package com.tsh.web; 
 
import java.io.IOException; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.Statement; 
 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.sql.DataSource; 
 
 
 
 
/** 
 */ 
public class DataSourceTest extends HttpServlet { 
        
    /** 
     */ 
    public DataSourceTest() { 
        super(); 
        // TODO Auto-generated constructor stub 
    } 
 
    /** 
     */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        // TODO Auto-generated method stub 
    } 
 
    /** 
     */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    } 
    /** 
     * 创建后就会启动 
     */ 
    @Override 
    public void init() throws ServletException { 
        try { 
            //注意导包javax.naming.Context; 
            Context context= new InitialContext(); 
            Context jndi=(Context) context.lookup("java:comp/env"); 
            DataSource source =(DataSource) jndi.lookup("mySource"); 
            //注意导包 java.sql.Connection; 
            Connection conn=source.getConnection(); 
            //获取传输器对象 
            Statement statement=conn.createStatement(); 
            //获取结果集对象 
            ResultSet resultSet=statement.executeQuery("select * from user"); 
            //遍历 
            while(resultSet.next()){ 
                String username=resultSet.getString("username"); 
                System.out.println(username); 
            } 
            //关闭资源 
            resultSet.close(); 
            statement.close(); 
            conn.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
}

web.xml

    <servlet> 
        <servlet-name>DataSourceTest</servlet-name> 
        <servlet-class>com.tsh.web.DataSourceTest</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>DataSourceTest</servlet-name> 
        <url-pattern>/Servlet/DataSourceTest</url-pattern> 
 
    </servlet-mapping>

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/industrynews/12686.html

(0)
上一篇 2021年7月19日 14:51
下一篇 2021年7月19日 14:51

相关推荐

发表回复

登录后才能评论