Java-программа для подключения к Sql Server и выполнения примера запроса из Eclipse

package sqlselection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Sqlselection 
    {
        public static void main(String[] args)
        {
            try
            {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

                String userName = "sa";
                String password = "password";
                String url = "jdbc:microsoft:sqlserver://localhost:1433"+";databaseName=AdventureWorks2008R2";
                Connection con = DriverManager.getConnection(url, userName, password);
                Statement s1 = con.createStatement();
                ResultSet rs = s1.executeQuery("SELECT TOP 1 * FROM HumanResources.Employee");
                String[] result = new String[20];
                if(rs!=null){
                    while (rs.next()){
                        for(int i = 0; i <result.length ;i++)
                        {
                            for(int j = 0; j <result.length;j++)
                            {
                                result[j]=rs.getString(i);
                            System.out.println(result[j]);
                        }
                        }
                    }
                }

                //String result = new result[20];

            } catch (Exception e)
            {
                e.printStackTrace();
            }
    }


}

    enter code here

выше приведен пример моей программы для подключения к Sql server для запуска примера запроса select из eclipse.

Я получаю ниже ошибки.

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at java.net.URLClassLoader.run(Unknown Source)
    at java.net.URLClassLoader.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at sqlselection.Sqlselection.main(Sqlselection.java:13)

я добавил sqljdbc.jar, sqljdbc4.Джар в библиотеку. Помогите исправить это

8 ответов


проблема Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); эта строка. Квалифицированное имя класса неверно

Это sqlserver.jdbc не jdbc.sqlserver


вы забыли добавить sqlserver.jar во внешней библиотеке eclipse выполните процесс добавления файлов jar

  1. щелкните правой кнопкой мыши на вашем проекте.
  2. нажмите buildpath
  3. нажмите Настроить путь bulid
  4. нажмите Добавить внешнюю банку, а затем дайте путь jar

см. ссылку ниже.

есть два важных изменения, которые вы должны сделать

имя драйвера как " com.Microsoft.от SQLServer.интерфейс jdbc.SQLServerDriver"

& in URL "jdbc:sqlserver: / / localhost: 1433"+"; databaseName=AdventureWorks2008R2"

http://www.programcreek.com/2010/05/java-code-for-connecting-ms-sql-server-by-using-sql-server-authentication/


на ссылке и водителя sqlserver, скачать и добавить его в свой eclipse buildpath по.


щелкните правой кнопкой мыши свой проект- - - >Путь сборки- - - - >настроить путь сборки - - - - > вкладка библиотеки - - - >добавить внешние банки - - - >(перейдите к месту, где вы сохранили jar драйвера sql) - - - > ok


добавить sqlserver.jar Вот ссылке

как следует из названия ClassNotFoundException в Java является подклассом java.lang.Exception и приходит, когда Виртуальная Машина Java пытается загрузить определенный класс и не найден запрошенный класс в classpath.

еще один важный момент об этом исключении заключается в том, что это проверенное исключение и нужно указать, обработка исключений при использовании методов, которые могут возможно, бросить ClassNotFoundException в java либо с помощью блока try-catch, либо с помощью предложения throws.

Oracle docs

public class ClassNotFoundException
 extends ReflectiveOperationException

брошенный, когда приложение пытается загрузить в класс через его название строку:

  • метод forName в классе Class.
  • метод findSystemClass в ClassLoader.
  • метод loadClass в классе ClassLoader.

но нет определения для класс с указанным именем может быть найден.


загрузите драйвер Microsoft jdbc 4.0 для SQL Server, который поддерживает:

    SQL Server versions: 2005, 2008, 2008 R2, and 2012.
    JDK version: 5.0 and 6.0.

запустите загруженную программу sqljdbc__.исполняемый. Он будет извлекать файлы в указанный каталог (по умолчанию используется драйвер Microsoft JDBC 4.0 для SQL Server). Вы найдете два файла jar sqljdbc.jar (для JDBC 3.0) и sqljdbc4.jar (для JDBC 4.0), плюс некоторые .файлы dll и файлы справки HTML.

поместите sqljdbc4.файл jar в пути к классам вашего приложения, если вы используете JDK 4.0 или sqljdbc4.1.jar-файл, если вы используете JDK 6.0 или более позднюю версию.


просто измените запрос следующим образом:

SELECT TOP 1 * FROM [HumanResources].[Employee]

здесь Employee - это имя таблицы, а HumanResources - это имя схемы, если я не ошибаюсь.

надеюсь, ваша проблема будет решена. :)