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