我正在尝试使用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)
我的代码
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")
}
}
我该如何解决这个问题?
答案 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的一部分。