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,如需转载请自行联系原作者