连接Java驱动程序以连接到SQL Server时出现问题

时间:2020-08-31 19:34:43

标签: java sql-server jdbc netbeans

尝试将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)

这显示我的驱动程序已连接。

Driver Connected

我已经更新了CLASSPATH,但仍然遇到相同的错误。

classpath

2 个答案:

答案 0 :(得分:2)

您需要在类路径中有com.microsoft.sqlserver.jdbc.SQLServerDriver类,可以在Microsoft JDBC Driver中找到该类。 因此,问题不在连接中。这是因为您缺少驱动程序库。

答案 1 :(得分:1)

不要不要使用系统范围的CLASSPATH变量-已弃用了很长一段时间。

您的NetBeans快照显示了可用于内置NetBeans数据库查询工具的驱动程序。这不会更改项目的类路径。

如果您使用的是基于Ant的项目,请右键单击该项目,选择属性,然后在“库”部分中添加驱动程序的jar文件。

如果是Maven项目,则需要通过Maven将依赖项添加到Microsoft JDBC驱动程序中