struts的数据源管理

在Struts-config.xml中定义。

1、连接SQL Server 2000

<data-sources>
    <data-source key="sqlserver" type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="driverClassName"
          value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
      <set-property property="url"
          value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=gzrs;SelectMethod=cursor" />
      <set-property property="username" value="gzrs" />
      <set-property property="password" value="gzrs" />
      <set-property property="maxActive" value="10" />
      <set-property property="maxWait" value="5000" />
      <set-property property="description" value="sql server 2000"/>
      <set-property property="defaultAutoCommit" value="false" />
      <set-property property="defaultReadOnly" value="false" />
    </data-source>

需把从微软网站下载的SQL Server驱动中的三个驱动包:msbase.jar, msutil.jar, mssqlserver.jar放到tomcat目录中的common/lib中。

分析:(1)driverClassName代表驱动类,SQL Server 2000的就是com.microsoft.jdbc.sqlserver.SQLServerDriver

(2)url代表数据库链接,SQL Server 2000的就是jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=gzrs;SelectMethod=cursor

其中127.0.0.1:1433;DatabaseName=gzrs表示链接的是本地SQL Server2000数据库,数据库名为gzrs,可根据条件修改。

其它根据意思可知。

2、连接MySql数据库

<data-sources>
    <data-source key="mysql" type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="driverClassName"
          value="org.gjt.mm.mysql.Driver" />
      <set-property property="url"
          value="jdbc:mysql://localhost/gzrs" />
      <set-property property="username" value="gzrs" />
      <set-property property="password" value="gzrs" />
      <set-property property="maxActive" value="10" />
      <set-property property="maxWait" value="5000" />
      <set-property property="description" value="mysql"/>
      <set-property property="defaultAutoCommit" value="false" />
      <set-property property="defaultReadOnly" value="false" />
    </data-source>

需从MySql的网站上下载MySql的驱动,把mysql-connector-java-3.2.0-alpha-bin.jar驱动包放到tomcat目录中的common/lib目录下。

与SQL Server相比,驱动类不同。url中localhost/Struts表示链接本地MySql数据库,数据库名为struts.可修改。

在Struts-confog.xml中配置好数据DataSource后,可在应用系统中使用这些数据源。

如在Action类的execute方法中通过这些数据源来生成数据库连接。

public class FunctionsAction extends Action {
 public ActionForward execute(
   ActionMapping actionMapping,
   ActionForm actionForm,
   HttpServletRequest httpServletRequest,
   HttpServletResponse httpServletResponse)
     {
       DataSource dataSource=null;
       Connection cnn=null;
       ActionErrors errors=new ActionErrors();
       try{
         dataSource = getDataSource(httpServletRequest,"sqlserver");
         cnn = dataSource.getConnection();

       //数据库已经链接,可以在此写语句使用数据库
               }
       catch(Throwable e){
         e.printStackTrace();
         //throw new RuntimeException("未能与数据库连接");
         ActionError error=new ActionError(e.getMessage());
         errors.add(ActionErrors.GLOBAL_ERROR,error);
       }
       finally{
         try{
           if(cnn!=null)
             cnn.close();
         }
         catch(SQLException e){
           throw new RuntimeException(e.getMessage());
         }
       }
       saveErrors(httpServletRequest,errors);
       return actionMapping.findForward("fail");
     }

}

注: 若一个Struts系统中有多个数据源时,可在配置文件的<data-source>元素里包含一个key属性。可代码里可用key来获得不同的数据源。如上面的黄色部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值