Получение ClassNotFoundException для кода: "Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");"

Это мое первое приложение на Java, и я совершенно неопытен в Java и NetBeans.

Я пытался подключиться к SQL и получить некоторые записи в течение 2 дней. Проблема в драйвере jdbc, позвольте мне объяснить. Я скачал драйвер sqljdbc и затем выполнил следующие действия:

Щелкните правой кнопкой мыши "Проект" -> "Свойства" -> "С левой стороны" выберите "Библиотеки" -> "На вкладке" Компиляция "- нажмите кнопку" Добавить Jar/ папку "и выберите файл sqljdbc4.jar. Тогда все должно быть хорошо, верно?

Затем я написал этот код, но я не могу избавиться от этого исключения:

  Exception in thread "main" java.lang.ClassNotFoundException: 
  com.microsoft.sqlserver.jdbc.SqlServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:30)

Это код

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url = "jdbc:sqlserver://.\\SQLEXPRESS;databaseName=Northwind; Integrated Security = SSPI ";

    Connection con = null;
    Statement stmt = null;

    ResultSet rs = null;
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");

        con = DriverManager.getConnection(url);
        String sql = "Select Top 3 from * person.Contact";
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

2 ответа

Решение

Согласно этой странице, класс называется SQLServerDriver и не SqlServerDriver, Дело важно!

Так что постарайтесь:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Обратите внимание, что в более новых версиях JDBC нет необходимости явно загружать класс драйвера с помощью Class.forName(...), Страница, на которую я ссылаюсь, явно объясняет, что вам не нужно это делать. Таким образом, вы можете просто удалить всю строку, и тогда она должна работать.

Java: соединение JDBC с MSSQL в NetBeans

меры

  1. Загрузите JDBC по адресу: https://www.microsoft.com/en-in/download/details.aspx?id=11774
  2. Запустите sqljdbc__enu.exe - распакуйте этот zip-файл в%Program Files (x86)% с каталогом по умолчанию: Microsoft JDBC DRIVER для SQL Server
  3. Создайте свой новый проект в NetBeans
  4. Щелкните правой кнопкой мыши на проекте - выберите "Свойства" - выберите "Библиотеки" на левой панели - нажмите кнопку "Добавить JAR/ папку" - выберите файл JAR и откройте - "ОК"
  5. Откройте диспетчер конфигурации сервера Sql - выберите Протоколы для SQLEXPRESS в разделе Настройка сети сервера Sql - щелкните правой кнопкой мыши TCP/IP - выберите Свойства - измените Включить на Да - Нажмите IP-адреса - Перейти к IPAll - Изменить динамические порты TCP на 49169 и Порт TCP на 1433 - Применить - ОК - Перезагрузить компьютер
  6. Откройте Run и введите Services.msc - запустить браузер SQL Server.
  7. Перейти к проекту и написать код для подключения к базе данных.

Код для подключения к локальной базе данных:

String url = "jdbc:sqlserver://YOUR PC NAME;instanceName=SQLEXPRESS;DatabaseName=dbname;integratedSecurity=true";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection myCon = DriverManager.getConnection(url);

Statement myStmt = myCon.createStatement();
ResultSet myRs = myStmt.executeQuery("select * from table name");

У меня есть новости об этой проблеме.

  1. Перейдите по этой ссылке и найдите совместимый драйвер JDBC (я скачал версию 6.0).
  2. Найдите соответствующий jar-файл в загруженном вами файле (я использовал jre7\sqljdbc41.jar).
  3. Для Intellij Idea нажмите Ctrl+Shift+Alt+S и откройте структуру проекта, затем в разделе зависимостей добавьте свой файл jar.

Надеюсь, это сработает и для вас.

Другие вопросы по тегам