第一,将jdbc的驱动jar包拷贝到tomcat的lib下
第二,将tomcat中conf下的context.xml加入下面加粗的部分:
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
<Resource name="jdbc/testDbcp"
type="javax.sql.DataSource"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.130:3306/uf_demo_db"
username="root"
password="pass"
maxActive="40"
maxIdle="2"
maxWait="50000" />
</Context>
第三,在web.xml中加入这样的配置:
<resource-ref>
<description>testDbcp</description>
<res-ref-name>jdbc/testDbcp</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第四,这时候就可以用了:
DataSource ds = null;
Connection con = null;
try {
Context c = new InitialContext();
ds = (DataSource) c.lookup("java:comp/env/jdbc/testDbcp");
con = ds.getConnection();
System.out.println("Connect successfully.");
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
建议和说明:这种连接池,一般不推荐用,我们在开发的时候,成品都运行在租用的服务器
上,我们便改不了,tomcat了,再说容器也不一定是tomcat,resin和jboss等等,怎么办?
所以我们经常,用外部包来实现连接池的功能,这个我会在后面把代码共享的。
而且这种连接池还有些限制,只可以在web下面用!