天天看点

Tomcat连接池

Java不像DotNet那样内置了连接池,所以用jdbc写程序时DB连接性能是非常差的,其实Tomcat自身就支持连接池,用法也远比第三方组件简单。(真想不明白这么重要的一个功能java为什么不给集成到api里)

先修改tomcat的配置文件server.xml,在配置应用的时候增加点东西:

<Context docBase="XXX" path="/pool_test" debug="0"> 

    <Resource name="jdbc/pool"      <!--起个名字--> 

              auth="Container" 

              type="javax.sql.DataSource"  

              maxActive="50"        <!--最大连接数量--> 

              maxIdle="0"           <!--最小数量--> 

              maxWait="10000"       <!--超时时间,秒--> 

              username="UID"        <!--数据库用户名--> 

              password="PWD"        <!--密码--> 

              driverClassName="com.mysql.jdbc.Driver"               <!--jdbc驱动--> 

              url="jdbc:mysql://localhost:3306/db?useUnicode=true"  <!--jdbc连接串--> 

    /> 

</Context> 

然后是应用的web.xml,增加对资源的引用:

<resource-ref> 

   <description>DBConnection</description> 

   <res-ref-name>jdbc/pool</res-ref-name>       <!--用刚才起的名字--> 

   <res-type>javax.sql.DataSource</res-type> 

   <res-auth>Container</res-auth> 

</resource-ref> 

最后是代码了:

Context ctx = new InitialContext(); 

DataSource dbSource = (DataSource)ctx.lookup("java:comp/env/jdbc/pool"); //名字要加上前缀 

Connection conn = dbSource.getConnection(); 

//..... 

conn.close(); 

本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/775614,如需转载请自行联系原作者