天天看點

關于myeclipse在struts-config.xml中配置datasource的注意事項

我想這算個BUG吧。

  直接在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這兩個propertys。

  而Myeclipse自動生成的是driverClass和user這兩個propertys。

  改過來之後發現DBCP的資料庫連接配接池也好用了:)

  這應該算是MYECLIPSE開發struts的一個BUG吧,資料庫連接配接池的配置是按照struts預設的GenericDataSource來的。如果能動态的在選擇資料庫連接配接池的時候,找尋set()/get()方法來生成屬性的名字應該更好。

  也看出來不同的資料庫連接配接池在命名規則方面存在的一些差異。

  其實很簡單的東西,我卻花費了半天的時間,原因是我太相信工具了,以為生成的東西一定是正确的,是以一直在想是不是别的方面出錯了。得到這次教訓之後,要更加清晰的對工具持懷疑态度了。不能太過相信和依靠,還是自己對這些技術的了解最重要。

  PS:TOMCAT有自帶DBCP。不過我是自己從jakarta上面下的commons dbcp放到自己的lib裡面的,當然,官方doc上面有這樣的說明:

  Commons-DBCP depends at runtime on commons-pool and commons-collections .

  是以記得要把這兩項也下回來和dbcp的jar檔案一起放進lib才能保證不出錯。

  總之,認真+心細,才能更好的解決問題。

  本文環境:

  Win2003 + jdk1.5.0_01

  Tomcat 5.5 + MySql4.1

  Eclipse 3.0.1 + Myeclipse 3.8.4

  本文提到的一些軟體的下載下傳位址:

  J2SE 5.0(SUN弄的這些亂七八糟的名字真讨厭,混亂的感覺):

   http://java.sun.com/j2se/1.5.0/download.jsp

  Tomcat:

   http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi

  MySql4.1:

   http://dev.mysql.com/downloads/

  Eclipse:

   http://www.eclipse.org/downloads/index.php

  Jakarta commons(DBCP和其所需要的commons pool和commons collections都是在這裡下):

   http://jakarta.apache.org/site/downloads/downloads_commons.html

  預設的type是:

  org.apache.struts.util.GenericDataSource

  struts自帶的一個資料庫連接配接池。

  然後正确輸入各種property的value。

  測試,好用。

  如果将type選擇為:

  org.apache.commons.dbcp.BasicDataSource

  這個DBCP的資料庫連接配接池。

  然後鍵入正确的value。

  測試,提示各種異常&找不到Driver。

  檢視DBCP的文檔,發現MYECLIPSE生成的配置XML元素有問題。

  DBCP需要的是driverClassName和username這兩個propertys。

  而Myeclipse自動生成的是driverClass和user這兩個propertys。

  改過來之後發現DBCP的資料庫連接配接池也好用了:)

  這應該算是MYECLIPSE開發struts的一個BUG吧,資料庫連接配接池的配置是按照struts預設的GenericDataSource來的。如果能動态的在選擇資料庫連接配接池的時候,找尋set()/get()方法來生成屬性的名字應該更好。

  也看出來不同的資料庫連接配接池在命名規則方面存在的一些差異。

  其實很簡單的東西,我卻花費了半天的時間,原因是我太相信工具了,以為生成的東西一定是正确的,是以一直在想是不是别的方面出錯了。得到這次教訓之後,要更加清晰的對工具持懷疑态度了。不能太過相信和依靠,還是自己對這些技術的了解最重要。

  PS:TOMCAT有自帶DBCP。不過我是自己從jakarta上面下的commons dbcp放到自己的lib裡面的,當然,官方doc上面有這樣的說明:

  Commons-DBCP depends at runtime on commons-pool and commons-collections .

  是以記得要把這兩項也下回來和dbcp的jar檔案一起放進lib才能保證不出錯。

  總之,認真+心細,才能更好的解決問題。

  本文環境:

  Win2003 + jdk1.5.0_01

  Tomcat 5.5 + MySql4.1

  Eclipse 3.0.1 + Myeclipse 3.8.4

  本文提到的一些軟體的下載下傳位址:

  J2SE 5.0(SUN弄的這些亂七八糟的名字真讨厭,混亂的感覺):

   http://java.sun.com/j2se/1.5.0/download.jsp

  Tomcat:

   http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi

  MySql4.1:

   http://dev.mysql.com/downloads/

  Eclipse:

   http://www.eclipse.org/downloads/index.php

  Jakarta commons(DBCP和其所需要的commons pool和commons collections都是在這裡下):

   http://jakarta.apache.org/site/downloads/downloads_commons.html