2015-10-20 294 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

相关问题