天天看點

用myeclipse在struts中配置mysql和sqlserver的datasource

 今天用myeclipse在struts配置mysql的資料源時,老是提示找不到driver,就上網求助,終于找到了解決方法.

直接在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裡面, commons-collections.jar ,commons-pool.jar,commons-dbcp.jar由Tomcat自帶,已經在上面的目錄中了,其實隻要将資料庫驅動放進去就可以了. commons-collections.jar ,commons-pool.jar,commons-dbcp.jar如果沒有的話去apache網站下就可以了

繼續閱讀