使用数据库连接池

 

使用数据库连接池优化数据库响应

1、在工程中增加WebRoot/META-INF/context.xml 文件,文件内容如下:
<Context  reloadable="true" >
  <Resource name="jdbc/BookLibDB" auth="Container" type="javax.sql.DataSource"
     maxActive="100" maxIdle="30" maxWait="10000"
     username="root" password="1234"
     driverClassName="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/dbbooklib?useUnicode=true&amp;characterEncoding=utf-8"/> 
</Context>

然后部署到tomcat容器中。

2、在web工程的web.xml文件中增加对数据库连接池的引用:
 <resource-ref>
  <res-ref-name>jdbc/BookLibDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

3、在项目中通过JNDI查找获得注册在tomcat容器中的数据库资源:
public static Connection getConnection() throws DBException {     
    //用数据库连接池的方式实现,JNDI
    try {
        if(ds == null){      
            Context context = new InitialContext();
            ds = (DataSource) context.lookup("java:comp/env/jdbc/BookLibDB");   
        }
       
        return ds.getConnection();
    } catch (NamingException e) {   
        throw new DBException("数据库连接池查找失败", e);
    } catch (SQLException e) {   
        throw new DBException("获取数据库连接异常", e);
    }
}

4、在使用完数据库连接后一定要记得归还数据库连接。
try {
   //......
} catch (SQLException ex) {
    //......
} catch (DBException ex) {
    //......
} finally{
    try {
        connection.close(); //把数据库连接归还到数据库连接池,提高数据库的响应能力
    } catch (DBException ex) {
        //......
    }           
}

5、注意事项:
a、由于数据库连接池的资源只能注册在web容器当中,所以在j2se中使用单元测试找不到数据库连接池的jndi。
b、需要把mysql的驱动包放到 CATALINA_HOME/lib目录下才可以,若放到工程的目录下有可能找不到驱动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值