在struts中,数据库连接池是在struts-config.xml文件中配置的,而且可以配置多个数据库不同的连接池,配置内容和说明如下:
在<struts-config>标签中配置:
<!-- 配置数据库连接池 -->
<data-sources>
<!-- mysql数据库的连接池配置 -->
<!--
type指定BasicDataSource类所在的位置
在C:/Program Files/Tomcat 6.0/lib目录下,有一个tomcat-dbcp.jar的文件,
BasicDataSource类就在jar包的org.apache.tomcat.dbcp.dbcp包中。
使用key属性可是配置多个不同数据库的连接池,起标识的作用
-->
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource" key="mysql">
<!-- 配置数据库的用户名 -->
<set-property property="username" value="root"/>
<!-- 配置数据库的密码 -->
<set-property property="password" value="mysql"/>
<!-- 配置数据库的url -->
<set-property property="url" value="jdbc:mysql://localhost/test"/>
<!-- 配置数据库的驱动 -->
<set-property property="driverClassName" value="com.mysql.jdbc.Driver"/>
<!-- 配置数据库的初始连接数 -->
<set-property property="minActive" value="2"/>
<!-- 配置数据库的最大连接数 -->
<set-property property="maxActive" value="10"/>
<!-- 配置连接超时的时间,单位是毫秒 -->
<set-property property="wait-timeout" value="5000"/>
<!-- 配置是否自动提交,默认为true,一般设为false,以方便业务逻辑中的事务处理 -->
<set-property property="defaultAutoCommit" value="false"/>
</data-source>
<!-- oracle数据库的连接池配置 -->
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource" key="orcl">
<set-property property="username" value="scott"/>
<set-property property="password" value="admin"/>
<set-property property="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<set-property property="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<set-property property="minActive" value="2"/>
<set-property property="maxActive" value="10"/>
<set-property property="wait-timeout" value="5000"/>
<set-property property="defaultAutoCommit" value="false"/>
</data-source>
</data-sources>
在Action类中,获取连接对象:
javax.sql.DataSource ds = this.getDataSource(request,"mysql");
java.sql.Connection conn = ds.getConnection();
但是,一般情况下我们是把DataSource的对象作为参数传到dao层,然后在dao层获取连接。
补充:
<!-- SQL server 2000数据库的连接池配置 -->
<data-sources>
<data-source key="org.apache.struts.action.DATA_SOURCE1"
type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="url"
value="jdbc:microsoft:sqlserver://192.168.1.119:1433;DatabaseName=TEST" />
<set-property property="username" value="sa" />
<set-property property="password" value="***" />
<set-property property="maxActive" value="10" />
<set-property property="maxWait" value="1000" />
<set-property property="defaultAutoCommit" value="false" />
<set-property property="defaultReadOnly" value="false" />
</data-source>
</data-sources>