myeclipse在struts中配置mysql的datasource

myeclipse在struts中配置mysql的datasource

一.
直接在struts-config.xml中右键data-sources 然后New。 默认的type是: org.apache.struts.util.GenericDataSource ,struts自带的一个数据库连接池。 然后正确输入各种property的value。 测试,好用。
如果将type选择为: org.apache.commons.dbcp.BasicDataSource 这个DBCP的数据库连接池。 然后键入正确的value。 测试,提示各种异常找不到Driver。
查看DBCP的文档,发现MYECLIPSE生成的配置XML元素有问题。
DBCP需要的是driverClassName和username这两个properties。
而Myeclipse自动生成的是driverClass和user这两个properties。
改过来之后发现DBCP的数据库连接池也好用了,这应该算是MYECLIPSE开发struts的一个BUG吧,数据库连接池的配置是按照struts默认的GenericDataSource来的。
总结:
myeclipse自动生成的strust-config.xml有几点要注意:
1.driverClassName不是driverclass;
2.username不是user
3.不要设置loginTimeout.
action调用:DataSource ds=getDataSource(request,"datasource");

MSSQLServer2000数据源配置

 

<data-sources>

<data-source key="datasource" type="org.apache.commons.dbcp.BasicDataSource">
  <set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
                        <set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=zzb" />
                        <set-property property="username" value="sa" />
                        <set-property property="password" value="" />
                        <set-property property="maxActive" value="10" />
                        <set-property property="maxWait" value="5000" />
                        <set-property property="defaultAutoCommit" value="false" />
                        <set-property property="defaultReadOnly" value="false" />
                </data-source>
</data-sources>

MySQL数据源配置

<data-sources >
    <data-source key="datasource" type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="password" value="1234" />
      <set-property property="minCount" value="1" />
      <set-property property="maxCount" value="10" />
      <set-property property="username" value="root" />
      <set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />
      <set-property property="description" value="for struts attack aolution" />
      <set-property property="url" value="jdbc:mysql://localhost:3306/attack" />
      <set-property property="readOnly" value="false" />
      <set-property property="autoCommit" value="true" />
    </data-source>
  </data-sources>

调用的时候在Action里面getDataSource(request,"datasource");这个datasource就是上面那个key值,2者要对应,OK!!! 
注意commons-collections.jar ,commons-pool.jar,commons-dbcp.jar还有数据库驱动一定要注意拷贝到tomcat/common/lib里面,不要放到E:/jdk1.5.06/jre/lib/ext下边,因为会有冲突!
commons-collections.jar ,commons-pool.jar,commons-dbcp.jar我始終都沒有在tomcat裏面找到。不論是5.x,還是6.x版本的。如果沒有這三個文件的話,就會出現類似以下的錯誤:

2007年12月20日 下午03:22:26 org.apache.struts.action.ActionServlet initModuleDataSources
嚴重的: Initializing application data source mysqlDB
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
二.
 
使用:

public ActionForward execute( ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response ) throws Exception {
  DataSource dataSource;                            //定义数据源对象
  Connection myConnection = null;                   //定义联接对象
  try {
   dataSource = getDataSource( request );    //从配置文件中读取数据源息并进行配置
   myConnection = dataSource.getConnection();    //建立一个数据源连接实例
  }
  catch( SQLException sqle ) {
   getServlet().log( "Connection.process", sqle );  
  }
  finally {
   try {
    myConnection.close();
   }
   catch( SQLException e ) {
    getServlet().log( "Connection.close", e );
   }
  }// end finally
  return mapping.findForward( "fault" );
 }//end execute
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值