2010-10-28 30 views
2

我有我的Java應用程序,並嘗試連接mysql數據庫。但我無法獲得輸出,我得到異常錯誤。我想我是無法與驅動程序連接。我的操作系統是Linux(Ubuntu)。我需要在Ubuntu操作系統中使用java連接mysql的幫助


[email protected]:~$ java -version 
java version "1.6.0_20" 
OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1) 
OpenJDK Client VM (build 17.0-b16, mixed mode, sharing) 

[email protected]:~$ echo $JAVA_HOME 
/usr/java/jdk1.6.0_20/bin/java 


[email protected]:~$ echo $CLASSPATH 
.:/usr/share/java/mysql.jar:/home/nikki/temp/src/jclass 

我的jdk路徑是/usr/lib/jvm/java-1.6.0-openjdk/jre


我的Java程序是

import java.sql.*; 
class Query1 
{ 
public static void main(String args[])throws Exception 
{ 
try 
{ // the mysql driver string 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    // the mysql url = "jdbc:mysql://THE_HOST/THE_DATABASE"; 

    //String url = "sun.jdbc.odbc.JdbcOdbcDriver"; 

    String url ="jdbc:mysql://localhost/mylib_db"; 

    Connection conn = DriverManager.getConnection(url,"nikki","dkm007"); 
Statement stmt = conn.createStatement(); 
//ResultSet rs; 
ResultSet rs = stmt.executeQuery("select title from Book_dim where cost=435.89"); 
while (rs.next()) 
{ 
String titlename = rs.getString("title"); 
System.out.println(titlename + "\n"); 
} 
    conn.close(); 

} 
    catch(Exception e) 
    { 
    System.err.println("Got an exception! "); 
       System.err.println(e.getMessage()); 
    } 
} 
} 

我的o本安輸出是

- -  -  -    - 
[email protected]:~/Documents/Chinu/mydbP$ javac Query1.java 
[email protected]:~/Documents/Chinu/mydbP$ java Query1 
Got an exception! 
com.mysql.jdbc.Driver 

我沒有添加任何驅動程序......我不知道我應該使用哪種驅動程序。如何我可以添加的驅動程序? 如果可能的話請給我回復。

+0

@Petar。你有力量! – 2010-10-28 16:18:28

+0

@Alexander哈哈:) – 2010-10-28 16:19:07

回答

0

下載mysql jdbc driver並將其添加到您的類路徑中。

+0

我已經下載,它在(/home/nikki/temp/src/jclass/mysql-connector-java-5.0.8).My jdk在(/ usr/lib/jvm/java -1.6.0-openjdk)。但是我的CLASSPATH顯示(bash :: /usr/share/java/mysql.jar:/ home/nikki/temp/src/jclass:沒有這樣的文件或目錄)我的JAVA_HOME SHOWS(nikki @ nikki-laptop:〜$ $ JAVA_HOME bash:/usr/java/jdk1.6.0_20/bin/java:沒有這樣的文件或目錄)是不是正確?我怎麼設置路徑? – user490261 2010-10-28 20:43:05

1

您需要將驅動程序添加到您的應用程序的類路徑中。

[email protected]:~/Documents/Chinu/mydbP$ java -cp /path/to/mysqldriver.jar Query1 
+0

我不知道如何設置connector-java-5.0.8的路徑。我的mysql-連接器已經下載到(/home/nikki/temp/src/jclass/mysql-connector-java-5.0.8).My jdk已經在(/usr/lib/jvm/java-1.6.0-openjdk).If我正在寫作顯示classpath它給出.......... – user490261 2010-10-28 20:37:03

+0

我已經下載,它在(/ home/nikki/temp/src/jclass/mysql-connector-java-5.0.8)。我的jdk位於(/usr/lib/jvm/java-1.6.0-openjdk)。但是我的CLASSPATH顯示(bash:: /usr/share/java/mysql.jar:/home/nikki/temp/src/jclass:沒有這樣的文件或目錄)我的JAVA_HOME SHOWS(nikki @ nikki-laptop:〜$ $ JAVA_HOME bash:/ usr/java/jdk1.6.0_20/bin/java:沒有這樣的文件或目錄)是不是? 我該如何設置路徑? – user490261 2010-10-28 20:46:17

+0

@ user490261。請在RTFM http://dev.mysql.com/doc/refman/5.1/en/connector-j-installing-classpath.html – 2010-10-29 11:36:31

1

您可能沒有在類路徑中包含mysql驅動程序。從mysql下載JDBC驅動程序,並將mysql-connector-java- [version] -bin.jar文件放在你的類路徑中。

瞭解更多關於拋出異常的信息也很有幫助。下面是你如何做到這一點:

catch(Exception e) 
{ 
    e.printStackTrace(); 
} 
+0

OP執行此操作,輸出爲:com.mysql.jdbc。驅動程序 – KevinDTimm 2010-10-28 16:25:30

+0

不,這是e.getMessage(),它不會告訴您異常的類。 e.printStackTrace()會。 – Andrew 2010-10-28 16:38:01

+0

+1。只需添加異常消息的打印輸出。在這種情況下,你經常需要兩者。 – 2010-10-28 16:59:54