2015-10-20 146 views
-1

我想了解JDBC API,爲了做到這一點,我只寫了一些代碼來建立到數據庫的連接。看來我不能... 我試圖手動加載驅動程序的MySQL數據庫,但即使我包括連接器.jar在類路徑編譯器抱怨,它找不到包com.mysql 。無法加載JDBC驅動程序

另一方面,如果我省略了Class.forName()方法,代碼將編譯,但在運行時會得到數百個Exception行。

我編譯(並運行),包括在命令行的jar:

javac -cp [path to jar] DBTest.java 

這裏是我的代碼:

import java.sql.*; 

class DBTest { 
**strong text** 
    static final String ADDRESS="jdbc:mysql://127.0.0.1:8888/customer"; 
    static final String USER="myuser"; 
    static final String PASSWORD="luca"; 

    public static void main(String[] args) { 
    Connection conn=null; 
    Statement stat=null; 
    Class.forName("com.mysql.jdbc.Driver"); 
    try { 
     conn=DriverManager.getConnection(ADDRESS,USER,PASSWORD); 
     stat=conn.createStatement(); 
     String query="SELECT * FROM person"; 
     ResultSet result=stat.executeQuery(query); 
     while (result.next()) { 
     String name=result.getString("name"); 
     String surname=result.getString("surname"); 
     int id=result.getInt("id"); 
     String telephone=result.getString("telephone"); 
     System.out.println(id+": first name: "+name+" second name: "+surname+" tel: "+telephone); 
     } 
    } 
    catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    finally { 
     try { 
     conn.close(); 
     stat.close(); 
     } 
     catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 
    } 

編輯:

用雙引號它現在編譯好,但在運行時它說類似:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 
+0

有你,如果你的MySQL是在端口8888上運行檢查?你可以使用mysql命令行工具連接或將HeidiSQL稱爲該數據庫? –

回答

2

更換

Class.forName(com.mysql.jdbc.Driver); 

Class.forName("com.mysql.jdbc.Driver"); 
+0

可能會是jdbc2或jdbc3 – AbtPst

+2

您可能完全刪除語句... – Reimeus

相關問題