Я получаю сообщение об ошибке при попытке подключить свое 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

0
Juan Pedro Pont Vergés 31 Авг 2020 в 22:34

2 ответа

Лучший ответ

Не используйте общесистемную переменную CLASSPATH - она давно устарела.

На снимке экрана NetBeans показаны драйверы, доступные для встроенного инструмента запросов к базе данных NetBeans. Это не меняет путь к классам вашего проекта.

Если вы используете проект на основе Ant, щелкните проект правой кнопкой мыши, выберите свойства, затем добавьте файл jar драйвера в раздел «Библиотеки».

Если это проект Maven, вам необходимо добавить зависимость к драйверу Microsoft JDBC через Maven

1
a_horse_with_no_name 31 Авг 2020 в 20:42

Вам необходимо иметь класс com.microsoft.sqlserver.jdbc.SQLServerDriver в пути к классам, который можно найти в драйвере Microsoft JDBC. Так что проблема не в подключении. Дело в том, что вам не хватает библиотеки драйверов.

2
Artur 31 Авг 2020 в 19:39