2010-10-28 35 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