tomcat中通过DataSource访问数据库 1. 在server.xml中加入<Resource>元素:
<Resource name="jdbc/BaronDB" auth="Container" type="javax.sql.DataSource"/>
2. 在server.xml中加入<ResourceParams>元素,定义数据库连接相关参数:
<ResourceParams name="jdbc/BaronDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>229</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=guard</value>
</parameter>
</ResourceParams>
3. 在web.xml中加入<resource-ref>元素:
<resource-ref>
<res-ref-name>jdbc/BaronDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
4. 本代码以sqlServer为例说明,需要将其相关的jdbc驱动程序拷贝到<CATALINA_HOME>/common/lib目录下.
5. 在程序中通过连接池取得数据库连接:
try{
Context ctx = new InitialContext();
if(ctx == null)
throw new Exception("no Context!");
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/BaronDB");
}
catch(Exception e){
System.out.println(e.getMessage());
}