2015-12-02 173 views
0

我最近開始使用JDBC。我從ubuntu軟件中心安裝了JDBC驅動程序,並使用JDBC運行我的第一個Java程序。JDBC類未發現異常

import java.sql.*  
public class db 
{ 
    static final String JDBC_DRIVER="com.mysql.jdbc.Driver"; 
    static final String DB_URL="jdbc:mysql://localhost/emp"; 
    static final String USER= "username"; 
    static final String PASS="password"; 
    public static void main(String [] args) 
    { 
     Connection conn=DriverManager.getConnection(JDBC_DRIVER); 
     Statement stmt=null; 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      System.out.println("Connecting to database"); 
      System.out.println("Creting statement"); 
      String sql; 
      stmt=conn.createStatement(); 
      sql="select id, first last, age from Employee"; 
      ResultSet rs= stmt.executeQuery(sql); 
      while(rs.next()) 
      { 
       int id=rs.getInt("id"); 
       int age=rs.getInt("age"); 
       String first=rs.getString("first"); 
       String last=rs.getString("Last"); 
       System.out.print("ID: "+id); 
       System.out.print(", Age: " +age); 
       System.out.print(", First: "+first); 
       System.out.println(", Last: "+last); 
      } 
      rs.close(); 
      stmt.close(); 
      conn.close(); 
     } 
     catch(SQLException se) 
     { 
      se.printStackTrace(); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     finally 
     { 
      try 
      { 
       if(stmt!=null) 
        conn.close(); 
      } 
      catch(SQLException se) 
      { 
       se.printStackTrace(); 
      } 
     } 
    } 
} 

我創建了「emp」數據庫​​,我試圖用JDBC瀏覽它的內容。當我使用

javac db.java 

一切正常。但是,當我運行它通過

java db 

它給我java.lang.classnotfoundException。我將CLASSPATH = CLASSPATH://user/share/java/mysql-connector-java.jar包含到了bashrc文件中。任何人都可以幫我解決這個問題嗎?

+0

如果您使用任何IDE將該jar文件添加到「WEB -INF/lib',如果它是一個Web應用程序,將它添加到'lib'文件夾並嘗試它。 –

+0

不,vi和bash –

+0

我強烈建議你使用像Maven,Ant + Ivy,Gradle等構建和依賴管理工具,而不是手動編譯和設置類路徑。 –

回答

0
  • DriverManager.getConnection()通話將Class.forName("com.mysql.jdbc.Driver");,其後不要
  • DriverManager.getConnection()需求URL作爲參數,而不是驅動程序類名稱,所以使用Connection conn=DriverManager.getConnection(DB_URL);
+1

他們很可能根本不需要'Class.forName'語句。 –

+0

你的意思是什麼網址?抱歉,我是java和JDBC的新手 –

+0

對於每種類型的數據庫,都應該給出正確的URL。在MySql的情況下,它會是這樣的:jdbc:mysql:// /,這就是你的DB_URL。 – Berger