2015-04-15 83 views
1

我已经开始学习如何连接MySQL数据库与Java。由于我是初学者,我一直在寻找最基本的指南,并找到了this。 它看起来很容易,很容易理解和帮助。找不到jdbc驱动程序?

但是,当我运行该代码时,它显示一个错误,表是空的。 :(

CODE:

import java.sql.*; 
import java.util.Calendar; 



public class DatabaseClass { 

public static void main(String args[]){ 
    try{ 
     String myDriver = "org.gjt.mm.mysql.Driver"; 
     String myUrl = "jdbc:mysql://localhost/test"; 
     Class.forName(myDriver); 
     Connection conn = DriverManager.getConnection(myUrl, "root", "admin"); 

     Calendar calen = Calendar.getInstance(); 
     java.sql.Date startDate = new java.sql.Date(calen.getTime().getTime()); 

     String query = "insert into users (first_name, last_name, date_created, is_admin, num_points)" 
       + " values(?,?,?,?,?)"; 

     PreparedStatement preparedStmt = conn.prepareStatement(query); 
     preparedStmt.setString(1, "Name"); 
     preparedStmt.setString(2, "LName"); 
     preparedStmt.setDate(3, startDate); 
     preparedStmt.setBoolean(4, false); 
     preparedStmt.setInt(5, 5000); 

     preparedStmt.execute(); 

     conn.close(); 

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

    } 
} 

错误:

run: 
Got an exception! 
org.gjt.mm.mysql.Driver 
BUILD SUCCESSFUL (total time: 0 seconds) 

同样的事情发生与我提出的任何驱动程序

这也许是我知识的缺乏和它。可能不是什么大问题,但是当你刚刚接触它时,它看起来像是第一个世界的问题d:

堆栈跟踪:

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:191) 
at Sranje.DatabaseClass.main(DatabaseClass.java:14) 

  • 了数据库称为 '测试'
  • 在测试有一个名为 '用户'(与指定的字段)表
  • 使用MySQL 5.6命令行客户端
  • NetBeans 8.0.2中构建的代码
+1

你把MySQL jar放在工作目录的某个地方吗? – tim

+0

你正在使用什么样的蚂蚁目标? – SMA

+0

@tim不,只是盲目地遵循指导,想更多地了解代码。心灵解释哪个罐子? – SadCoffeeBean

回答

6

您应该将带有MySQL驱动程序的文件放到NetBeans中的类路径中,以便IDE知道要加载的驱动程序类。

另一件事是一个奇怪的驱动程序名称org.gjt.mm.mysql.Driver,通常是com.mysql.jdbc.Driver。请尝试使用com.mysql.jdbc.Driver驱动程序名称,并将mysql连接器jar放入您的类路径中。你可以找到在MySQL JDBC连接器JAR的驱动程序,您可以在这里下载:

http://dev.mysql.com/downloads/connector/j/

而且我劝你在抓写e.printStackTrace(),让你随时知道到底出了问题。

+0

感谢大卫^^ 我使用'org.gjt.mm.mysql.Driver',因为我读过的地方,它用于MySQL ...真的不知道,会使用'com.mysql.jdbc。司机'从现在开始。 – SadCoffeeBean

+1

@SadCoffeeBean'org.gjt.mm.mysql.Driver'只是为了向后兼容而提供的,它已经超过了十年现在afaik的'com.mysql.jdbc.Driver',最重要的是,你不再* *需要**用'Class.forName'显式加载驱动程序。一年前上次更新的“教程”仍然使用这些过时的做法,这一事实表明它不是很好的质量。 –

相关问题