数据库连接池结合JNDI的实现
在Tomcat中配置、使用数据库连接池
1、配置数据源
在Tomcat服务器的context.xml文件中,给Context元素增加下属Resource元素,
代码如下:
<Resource name="jdbc/venus" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="20" maxWait="30000" username="scott" password="root"
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:venus"/>
现在是在Tomcat服务器的context.xml文件中配置数据源,该数据源是面向整个Tomcat服务器范围的,也可以通过修改/Web应用/META-INF目录下的context.xml文件,实现对该Web应用配置数据源,其作用范围仅限于该Web应用。
2、在web.xml中配置对资源的引用
在/Web应用/MET-INF目录下的web.xml文件的web-app元素下添加resource-ref元素,
代码如下:
<resource-ref>
<description>Oracle Database</description>
<res-ref-name>jdbc/venus</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
需要注意的是,在web.xml中只是配置了对资源的引用,具体对JNDI数据源的配置还是在
context.xml文件中。实际上,即使不在web.xml中配置对资源的引用,也可以在接下来的程序中直接获取到JNDI数据源。也就是说,即使不对web.xml文件作任何的修改,也不会影响程序的运行。
3、Web应用通过JNDI名访问数据源
/**
* 连接数据库
*
* @author meidan
*/
private Connection getConnection() throws Exception{
Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/venus");
Connection connection = dataSource.getConnection();
return connection;
}
之后进行对数据库的insert,delete,update之类的操作需要连接数据库时,直接调用
getConnection()方法。