当我尝试连接jdbc时,ClassNotFoundException,odbc

时间:2015-10-16 09:56:07

标签: java jdbc odbc

我正在尝试使用ODBC,JDBC连接到MySQL,而我遇到了麻烦 ClassNotFoundException错误。

Exception in thread "main" java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    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 dbconnect.jdbcconnect.main(jdbcconnect.java:16)

我像这样将jar添加到JavaBuildPath enter image description here

我的代码

public static void main(String[] args) throws SQLException, ClassNotFoundException {
        // TODO Auto-generated method stub
        //Connection conn = null;

        String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        String url = "jdbc:odbc:Gtable";
        Class.forName(driver); 
        Connection conn = DriverManager.getConnection(url, "root", "")    
    //  Statement s=conn.createStatement();

        //s.executeQuery("Select")
    }

}

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

java.lang.classnotfoundexception sun.jdbc.odbc.jdbcodbcdriver异常来自Java 8,因为它已从JDK和JRE中删除了JDBC ODBC桥驱动程序类“sun.jdbc.odbc.jdbcodbcdriver”

答案 1 :(得分:0)

在Javarevisited How to solve java.lang.classnotfoundexception sun.jdbc.odbc.jdbcodbcdriver in Java 8上阅读这篇文章可能会完全正确地解决您的问题。

  

JDBC-ODBC桥驱动程序在过去十年左右被标记为“不使用”。它出现在Java 7发行版中,但从Java 8发行版中删除。它也可能在非Windows JVM上不可用,因为在不存在ODBC的平台上具有ODBC-JDBC桥驱动程序是没有意义的,例如Linux或Mac OS

由于此驱动程序已从Java 8中删除,因此如果您碰巧使用Access DB,则必须使用不同的策略来访问报告Manipulating an Access database from Java without ODBC,例如UCanAccess

  

请记住,sun.jdbc.odbc.JdbcOdbcDriver是来自JDK API的标准类,它没有任何外部JAR,如其他供应商数据库的JDBC驱动程序,例如用于连接Oracle数据库的JDBC驱动程序来自ojdbc6.jar,MySQL驱动程序来自mysql-connector-java-5.1.23-bin.jar。 JdbcOdbcDriver类存在于rt.jar中,它始终包含在Classpath中,因为此JAR文件是JRE的一部分。

相关问题