我正在学习java,我们的老师(使用jdk 7,netbeans)向我们展示了连接到Microsoft SQL Server 2008的方法。现在我也这样做,但是我有一个错误:
java.lang.ClassNotFoundException: jdbc.odbc.JdbcOdbcDriver
我直接搜索了4个小时,我终于找到了问题:我使用的是jdk8,现在有人说jdk8删除了JDBC驱动程序,你必须从这个网站下载它:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
我这样做了,但我不知道如何运行它。该怎么做,我完全是空白。有人可以告诉我如何连接到数据库。
即便如此,这里也没有问题:
用于测试连接的简单代码:
package sqlexamples;
import java.sql.*;
public class Example {
public static void main(String[] args) {
try{
Class.forName("jdbc.odbc.JdbcOdbcDriver");
System.out.println("Driver Successfully Loaded!");
Connection connect = DriverManager.getConnection("jdbc:odbc:library;user=maisam;password=db123");
System.out.println("Connected to Database!");
PreparedStatement state = connect.prepareStatement("Select * from mytable");
System.out.println("Query Executed Successfully!");
connect.close();
System.out.println("Database Closed!");
}
catch(ClassNotFoundException ex){
System.out.println("Error: Driver Class not found.");
ex.printStackTrace();
}
catch(SQLException sqlex){
System.out.println("Error: SQL Error");
sqlex.printStackTrace();
}
}
}
错误:找不到驱动程序类。抛出java.lang.ClassNotFoundException: jdbc.odbc.JdbcOdbcDriver at java.net.URLClassLoader $ 1.run(URLClassLoader.java:372)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:360)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)at at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:260)at sqlexamples.Example.main(Example.java:11) 建立成功(总时间:0秒)
编辑:我只是想切换回JDK7,直到我的[图书馆系统管理]项目完成。
答案 0 :(得分:3)
人们说jdk8删除了jdbc驱动程序
事实并非如此。从Java 8中删除了JDBC-ODBC Bridge。因此,您无法使用ODBC驱动程序从Java 8连接到SQL Server。相反,您需要使用类似这样的JDBC驱动程序:
Microsoft JDBC Driver for SQL Server
(您问题中的下载链接也适用于Microsoft的SQL Server JDBC驱动程序。您的问题是您所遵循的说明适用于ODBC,而不是JDBC。请使用JDBC驱动程序的说明。)