在struts-config.xml中配置data-source注意事项:
<data-sources>
<!--
名称:data-source
描述:data-source元素定义了具体的数据源 属性:
@key:当需要配置多个数据源时,相当于数据源的名称,用来数据源彼此间进行区别
@type:可以使用的数据源实现的类,一般来自如下四个库
-->
<data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<!--
名称:set-property 属性:
@driverClassName:驱动名称
@url:数据库url
@user:数据库用户
@password:数据库密码
@maxCount:最大数据源连接数
@minCount:最小数据源连接数
@autoCommit:是否自动提交 可选值:true/false
@description:数据源描述
@readOnly:只读属性 必须为false,否则不能进行插入修改操作
-->
<set-property property="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url"
value="jdbc:oracle:thin:@localhost:1521:orcl" />
<set-property property="username" value="scott" />
<set-property property="password" value="tiger" />
<set-property property="maxCount" value="20" />
<set-property property="minCount" value="5" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="ds" />
</data-source>
</data-sources>
<data-sources>
<!--
名称:data-source
描述:data-source元素定义了具体的数据源 属性:
@key:当需要配置多个数据源时,相当于数据源的名称,用来数据源彼此间进行区别
@type:可以使用的数据源实现的类,一般来自如下四个库
-->
<data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<!--
名称:set-property 属性:
@driverClassName:驱动名称
@url:数据库url
@user:数据库用户
@password:数据库密码
@maxCount:最大数据源连接数
@minCount:最小数据源连接数
@autoCommit:是否自动提交 可选值:true/false
@description:数据源描述
@readOnly:只读属性 必须为false,否则不能进行插入修改操作
-->
<set-property property="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url"
value="jdbc:oracle:thin:@localhost:1521:orcl" />
<set-property property="username" value="scott" />
<set-property property="password" value="tiger" />
<set-property property="maxCount" value="20" />
<set-property property="minCount" value="5" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="ds" />
</data-source>
</data-sources>
在**DAO文件中代码:
首先定义
private DataSource dataSource;
该类的构造方法:
public **DAO(DataSource dataSource)
{
this.dataSource=dataSource;
}
然后在该类的方法中使用dataSource.getConnection()方法获得连接。
一定要注意千万不要使用静态方法
在action类中调用配置的datasource时有一下两种方法:
方法一:ServletContext context = servlet.getServletContext();//获得Struts中的配置文件属性
DataSource dataSource = (DataSource) context.getAttribute("dataSource");
方法二:DataSource ds=this.getDataSource(request, "dataSource");
**DAO **dao=new **DAO(ds);
getDataSource(HttpServletRequest request,String key)方法就是在action中调用你配置好的data-source而已
当然,方法中的参数key,就是你配置的<data-source>的key
可以比较方法二比较简洁哦!费了好大功夫才搞出来的,呼呼·····