Java Oracle localhost数据库连接(java.lang.ClassNotFoundException)

时间:2011-07-24 06:42:38

标签: java mysql exception jdbc

我目前正在使用这个简单的代码尝试连接到这台计算机上的数据库(Java)

import java.sql.Connection;
import java.sql.DriverManager;

public class Main {
public static void main(String[] argv) throws Exception {       

    String driverName = "org.gjt.mm.mysql.Driver";
    Class.forName(driverName);

    String serverName = "localhost";
    String mydatabase = "xe";
    String url = "jdbc:mysql://" + serverName + "/" + mydatabase; 

    String username = "scott";
    String password = "tiger";
    Connection connection = DriverManager.getConnection(url, username, password);
   }
 }

出于某种原因,我不明白我收到此错误

Exception in thread "main" java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Main.main(Main.java:10)

我认为这些类在ojdbc5.jar文件中?我不太确定如何解决这个错误,所以任何帮助都会很棒。

3 个答案:

答案 0 :(得分:3)

如果加载 Oracle类而不是MySQL,则可能会更好:

String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);


String serverName = "localhost";
String mydatabase = "xe";
String url = "jdbc:oracle:thin:@//" + serverName + ":1521/" + mydatabase; 

答案 1 :(得分:1)

我不知道你从哪里获得这段代码,但它包含几个错误:

  • String driverName = "org.gjt.mm.mysql.Driver";旨在用于访问MySQL数据库。如果您打算访问MySQL实例,请使用com.mysql.jdbc.Driver; org.gjt.mm.mysql.Driver可以使用,但保留它是为了向后兼容。如果您打算使用Type 4驱动程序访问Oracle实例,请使用oracle.jdbc.OracleDriver;避免使用oracle.jdbc.driver.OracleDriver,因为它已被弃用,并且可能在较新的驱动程序中不可用(特别是在为Oracle 11g发布的驱动程序中)。
  • String url = "jdbc:mysql://" + serverName + "/" + mydatabase;表示您想要连接到MySQL实例。但是你在谈论访问Oracle。在这种情况下,Oracle驱动程序根本不起作用,因为它识别某种格式的JDBC URL。要使用ojdbc5.jar / ojdbc6.jar中的瘦驱动程序使用服务名称和端口访问数据库,您应该使用thin-style service name syntax,如Oracle JDBC Developer's Guide中所述。因此,您的最终JDBC URL格式应为:
    • jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
    • jdbc:oracle:thin:@//localhost:1521/xe如果您不想在JDBC URL中传递用户名和密码。

答案 2 :(得分:0)

Java使用名为“Classpath”的东西来定位JAR文件中经常包含的类(但并不总是如此)。

此“classpath”选项通过命令行执行使用--classpath或-cp选项设置。您应该使用此选项调用java命令,指定您下载的JAR文件的位置,包含Oracle JDBC驱动程序。

如果您正在使用IDE,则可以通过查找“库”,“模块”或类路径本身等选项自动设置此选项,具体取决于您的IDE。您使用的是哪个IDE?

相关问题