2012-01-31 46 views
0

我跟着另一個stackover流線才能到這一點,這是這一個位置:的Tomcat6連接到MySQL的問題

Tomcat6 MySql JDBC Datasource configuration

我的問題是,去行:

Context initCtx = new InitialContext(); 
Context envCtx = (Context) initCtx.lookup("java:comp/env"); 
DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB"); 

Connection conn = ds.getConnection(); 
... use this connection to access the database ... 
conn.close(); 

Eclipse中給我的錯誤G:

Connection conn = ds.getConnection(); 
從此塊

對於DataSource類型,未定義etConnection()。

其解決辦法是要做到這一點:

Connection conn = ((java.sql.Statement) ds).getConnection(); 

沒有教程表明,需要做到這一點,當我這樣做,它不工作。我正在使用命名爲mysql-connector-java-5.1.18-bin的mySQL jar,之前我已經將它與RMI一起使用,但從未使用Tomcat,它是否與Tomcat一起使用是正確的類型?

TIA

+1

您是否從導入語句的正確包中導入了'DataSource'?有時在Eclipse中,組織導入時可能會無意中選擇錯誤的。你的'import'塊中這個類的完整包名稱是什麼? – ivantod 2012-01-31 13:27:02

+1

數據源無法成爲語句。您只是導入了錯誤的DataSource類型。 – 2012-01-31 13:29:23

+0

我做了JB,現在排序。謝謝。 – 2012-01-31 14:36:28

回答

3

如果我期待到Java API文檔http://docs.oracle.com/javase/6/docs/api/我找到一個getConnection()方法javax.sql.DataSource接口。我假設你的DataSource不是實現javax.sql.DataSource接口的東西。什麼「數據源」被導入?

+0

對不起,你是說我有錯誤的JRE。我試過將其切換爲其他JDK,但仍然是一樣的。 導入的數據源爲: \t @Resource(name =「jdbc/TestDB」) \t public DataSource ds; – 2012-01-31 14:08:09

+0

只要您使用JDK1.4或更高版本,您應該使用tomcat5 +就是正確的JDK。其實我想知道你的java-File上的「import」語句。它應該讀取「import javax.sql.DataSource」。如果還有其他數據源導入,就我所能提供的信息而言,這就是問題所在。 – Rupi 2012-01-31 14:11:43

+0

感謝Rupi,導入了另一個DataSource,切換了它,錯誤消失了。非常感謝。 – 2012-01-31 14:13:13