尝试将Java应用程序连接到SQL Server数据库时出现错误,这是我的代码。
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(CONN,USER,PASS);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from articulos");
while(rs.next()) {
int id = rs.getInt(1);
String descripcion = rs.getString(2);
float precio = rs.getFloat(3);
int rubro = rs.getInt(4);
Articulo a = new Articulo(id,descripcion,precio);
lista.add(a);
}
} catch (SQLException | ClassNotFoundException ex) {
Logger.getLogger(GestorBD.class.getName()).log(Level.SEVERE, null, ex);
}
我仍然遇到此错误
SEVERE: null
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:333)
at gestor.GestorBD.obtenerArticulos(GestorBD.java:19)
at repasobd.RepasoBD.main(RepasoBD.java:14)
这显示我的驱动程序已连接。
我已经更新了CLASSPATH,但仍然遇到相同的错误。
答案 0 :(得分:2)
您需要在类路径中有com.microsoft.sqlserver.jdbc.SQLServerDriver
类,可以在Microsoft JDBC Driver中找到该类。
因此,问题不在连接中。这是因为您缺少驱动程序库。
答案 1 :(得分:1)
不要不要使用系统范围的CLASSPATH
变量-已弃用了很长一段时间。
您的NetBeans快照显示了可用于内置NetBeans数据库查询工具的驱动程序。这不会更改项目的类路径。
如果您使用的是基于Ant的项目,请右键单击该项目,选择属性,然后在“库”部分中添加驱动程序的jar文件。
如果是Maven项目,则需要通过Maven将依赖项添加到Microsoft JDBC驱动程序中