MyEclipse連接MySQL的問題淺析
MyEclipse連接MySQL的問題的來由,本來之前已經(jīng)在Eclipse下做好了那個(gè)名片管理系統(tǒng),可是用了段時(shí)間的Eclipse,覺得裝上各種插件之后Eclipse變得好卡好卡,點(diǎn)什么都要反應(yīng)好一會(huì)兒,尤其是開始的時(shí)候,于是決定改成用MyEclipse來學(xué)習(xí)Struts2。
遇到的第一個(gè)問題,就是在MyEclipse中連接數(shù)據(jù)庫(kù)MySQL。按照之前在Eclipse中連接MySQL的方法沒有成功,總是提示java.sql.SQLException: No suitable driver 也就是沒有找到合適的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。于是尋找解決方法,按照網(wǎng)上給出的若干方法嘗試,比如將mysql-connector的那個(gè)jar包放到各種各樣的位置,然后加一環(huán)境變量中等等。結(jié)果都沒有成功。于是又打開了MySQL自帶的那個(gè)幫助文檔connector-j,里面說的方法也是把那個(gè)jar包加到環(huán)境變量中,不過我試了也沒有成功。
然后我就懷疑是不是自己的測(cè)試程序?qū)戝e(cuò)了,于是又把Eclipse打開,比照了一下,沒有發(fā)現(xiàn)問題。雖然按照connector-j的方法沒有成功,但也給了我一點(diǎn)提示,里面說如果是java-web開發(fā)的話,就要把那個(gè)jar包放到WEB-INF的lib目錄下,因?yàn)檫@是個(gè)標(biāo)準(zhǔn)的加載第三方庫(kù)的地方。于是我就想假設(shè)我不做web,只是一個(gè)application的測(cè)試程序,那么也就不要放到這個(gè)lib目錄下,而是放到j(luò)re system library下了。于是,把mysql驅(qū)動(dòng)帶的那個(gè)jar包放到%java_home%下的各個(gè)可能目錄下,結(jié)果在MyEclipse的jre system library下都沒有發(fā)現(xiàn)這個(gè)包。仔細(xì)一看,嚇了一跳,發(fā)現(xiàn)問題的本質(zhì)所在,原來MyEclipse中默認(rèn)使用的是MyEclipse自己提供的一個(gè)jre庫(kù),而不是使用我們安裝的那個(gè)。知道這個(gè),問題就好辦了。在新建工程的時(shí)候,不用MyEclipse提供的那個(gè)jre庫(kù),手動(dòng)到目錄中選擇安裝的那個(gè)jre,這里有個(gè)小地方要注意一下,選擇jre home directory的時(shí)候選擇到j(luò)dk的根目錄就好了,比如說我的安裝在R:\program\jdk1.6,那么選擇的路徑也就是這個(gè)了,當(dāng)然還是要把MySQL驅(qū)動(dòng)程序提供的那個(gè)包復(fù)制到%java_home%\jre\lib\ext中。再次執(zhí)行測(cè)試程序,輸出"connect successfully"
另外一種方法,就不需要在重建一個(gè)工程了。右鍵點(diǎn)擊JRE System Library->Build Path->Configure Build Path,再選擇右側(cè)的Edit按鈕,在Alternate JRE中選擇到自己安裝的那個(gè),如果沒有,就點(diǎn)旁邊的Installed JREs來找到即可。
測(cè)試程序:
- package com.javaeye.rennyit.dbtest;
- import java.sql.DriverManager;
- import java.sql.Connection;
- import java.sql.SQLException;
- public class MySQLTest {
- private static String dburl = "jdbc:mysql://localhost:3306/Cardms?user=root&password=mysql";
- public MySQLTest() {
- try {
- Connection con = DriverManager.getConnection(dburl);
- System.out.println("connect successfully");
- } catch(SQLException se) {
- se.printStackTrace();
- }
- }
- public static void main(String[] args) {
- new MySQLTest();
- }
- }
當(dāng)然其中dburl根據(jù)實(shí)際情況確定,上面的測(cè)試程序中Cardms指在數(shù)據(jù)庫(kù)中自己建立的數(shù)據(jù)庫(kù)名。
MyEclipse連接MySQL的問題就介紹到這里,希望對(duì)你有幫助。
【編輯推薦】