[分享]eclipse 3.0 中jre設定的小錯誤導致在java檔案中串連資料庫失敗
來源:互聯網
上載者:User
錯誤|串連資料庫 java.lang.ClassNotFoundException: org.gjt.mm.mysq.Driver
這也許是最普遍的錯誤了,一般解決方案就是檢查資料庫驅動是否安裝到jdk目錄下
(如:將mysql-connector-1-3-1.jar檔案copy到jdk目錄下的lib檔案夾中)
classpath是否設定了驅動的目錄
(CLASSPATH=.;D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar;D:\j2sdk\lib\mysql-connector-1-3-1.jar;)。
我的以上兩項設定都正確,測試連接代碼沒有問題,但是在eclipse中就是報錯(如上)
import java.sql.*;
public class mysqltest {
public static void main(String[] args) { //driverName String driverName="org.gjt.mm.mysql.Driver"; //database username String userName="root"; //psw String userPasswd="ss"; //dbname String dbName="java_app"; //tablename String tableName="staff"; //conncet comments String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; System.out.println(url); try{ Class.forName(driverName).newInstance();
Connection connection=DriverManager.getConnection(url); Statement statement = connection.createStatement(); String sql="SELECT * FROM "+tableName; ResultSet rs = statement.executeQuery(sql);// get result ResultSetMetaData rmeta = rs.getMetaData();// get col int numColumns=rmeta.getColumnCount();// output for(int i=1;i<=numColumns;i++) { if(i<numColumns) System.out.print(rmeta.getColumnName(i)+" | "); else System.out.println(rmeta.getColumnName(i)); } while(rs.next()){ for(int i=1;i<=numColumns;i++) { if(i<numColumns) System.out.print(rs.getString(i).trim()+" | "); else System.out.println(rs.getString(i).trim()); } } rs.close(); connection.close(); }catch(Exception ex){ System.out.println(ex); System.exit(0); }
}}
在確認JDK這邊沒有問題後我把注意力轉向eclipse的設定
(eclipse-->window-->preferences-->java-->installed JREs)
edit
小錯誤就在這!取消Use Default system libraries
把資料庫驅動所在的jar包加入
ok!儲存設定重啟eclipse,運行測試程式成功!