我想這算個BUG吧。
直接在struts-config.xml中右鍵data-sources然后New。
默認的type是:
org.apache.struts.util.GenericDataSource
struts自帶的一個數(shù)據(jù)庫連接池。
然后正確輸入各種property的value。
測試,好用。
如果將type選擇為:
org.apache.commons.dbcp.BasicDataSource
這個DBCP的數(shù)據(jù)庫連接池。
然后鍵入正確的value。
測試,提示各種異常&找不到Driver。
查看DBCP的文檔,發(fā)現(xiàn)MYECLIPSE生成的配置XML元素有問題。
DBCP需要的是driverClassName和username這兩個propertys。
而Myeclipse自動生成的是driverClass和user這兩個propertys。
改過來之后發(fā)現(xiàn)DBCP的數(shù)據(jù)庫連接池也好用了:)
這應(yīng)該算是MYECLIPSE開發(fā)struts的一個BUG吧,數(shù)據(jù)庫連接池的配置是按照struts默認的GenericDataSource來的。如果能動態(tài)的在選擇數(shù)據(jù)庫連接池的時候,找尋set()/get()方法來生成屬性的名字應(yīng)該更好。
也看出來不同的數(shù)據(jù)庫連接池在命名規(guī)則方面存在的一些差異。
其實很簡單的東西,我卻花費了半天的時間,原因是我太相信工具了,以為生成的東西一定是正確的,所以一直在想是不是別的方面出錯了。得到這次教訓(xùn)之后,要更加清晰的對工具持懷疑態(tài)度了。不能太過相信和依靠,還是自己對這些技術(shù)的了解最重要。
PS:TOMCAT有自帶DBCP。不過我是自己從jakarta上面下的commons dbcp放到自己的lib里面的,當然,官方doc上面有這樣的說明:
Commons-DBCP depends at runtime on commons-pool and commons-collections .
所以記得要把這兩項也下回來和dbcp的jar文件一起放進lib才能保證不出錯。
總之,認真+心細,才能更好的解決問題。
本文環(huán)境:
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