如何调用struts-config.xml中配置的data-source


在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>

 

在**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

可以比较方法二比较简洁哦!费了好大功夫才搞出来的,呼呼·····

相关内容