利用jdbc连接池(利用jdni)
简介
前段时间用jdbc连接池,在这里记录下
1、利用jdni配置数据源
在Web项目的META-INF文件夹中新建context.xml文件,内容为:
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/myDataSource" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/testDB" username="jacky" password="admin" maxActive="20" maxIdle="10" maxWait="10000"/> </Context
这种方式就不会依赖于tomcat,此外还可以在tomcat的conf目录下context.xml配置数据源
2、在web项目的web.xml添加如下配置
<resource-ref> <description>JNDI DataSource</description> <res-ref-name>jdbc/myDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth>
</resource-ref>
3、测试
package org.gsfan.db; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DBConnect { private Connection connection = null; public DBConnect() { } public Connection getConnection() { try { connection = getConnectionUseJNDI(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return connection; } public Connection getConnectionUseJNDI() throws NamingException, SQLException{ Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/myDataSource"); Connection conn = ds.getConnection(); return conn; } }
}
}