1,所需要的jar文件:commons-pool.jar, commons-dbcp.jar
2,server.xml的配置:
<Resource name="jdbc/hellohibernate" scope="Shareable" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/hellohibernate">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<!-- DBCP database connection settings -->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test</value>
</parameter>
<parameter>
<name>driverClassName</name><!--<value>com.mysql.jdbc.Driver</value>-->
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- DBCP connection pooling options -->
<parameter>
<name>maxWait</name>
<value>3000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>100</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
</ResourceParams>
3,程序中的调用:
Context ctx = new InitialContext();
if (ctx == null)
throw new Exception("Boom - No Context");
DataSource ds =
(DataSource) ctx.lookup(
"java:comp/env/jdbc/hellohibernate");
if (ds != null) {
Connection conn = ds.getConnection();
if (conn != null) {
foo = "Got Connection " + conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst =
stmt.executeQuery(
"select username,id from user");
if (rst.next()) {
foo = rst.getString(1);
bar = rst.getInt(2);
}
conn.close();
}
}