Как я могу использовать драйвер MS JDBC с MS SQL Server 2008 Express? - PullRequest
13 голосов
/ 12 февраля 2009

Моя конфигурация:

  • Windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express, доступный через tcp / ip через порт 1433
  • sqljdbc.jar в пути к классам

Я пытался:

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", "");
}
catch (Exception e) {
    e.printStackTrace();
}

Но всегда выдается исключение:

java.sql.SQLException: No suitable driver

Я также попробовал следующие URL:

localhost:1433/SQLEXPRESS2008

localhost/SQLEXPRESS2008

localhost

Те же результаты. Любая помощь?

Ответы [ 6 ]

29 голосов
/ 29 мая 2009

У вас неправильный URL.

Я не знаю, что вы подразумеваете под "JDBC 2005". Когда я посмотрел на сайте Microsoft, я обнаружил нечто, называемое Драйвер JDBC Microsoft SQL Server 2.0 . Вам понадобится такой - он включает в себя множество исправлений и некоторые улучшения. [править: вам, вероятно, понадобится последний драйвер. По состоянию на март 2012 года последний драйвер JDBC от Microsoft: JDBC 4.0]

Проверьте заметки о выпуске. Для этого драйвера вы хотите:

URL:  jdbc:sqlserver://server:port;DatabaseName=dbname
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver

Кажется, у вас правильное имя класса, но неправильный URL.

Microsoft изменила имя класса и URL-адрес после первоначального выпуска драйвера JDBC. Используемый вами URL-адрес идет с оригинальным драйвером JDBC от Microsoft, который MS называет «версия SQL Server 2000». Но этот драйвер использует другое имя класса.

Для всех последующих драйверов URL изменился на форму, которую я здесь имею.

Это в примечаниях к выпуску для драйвера JDBC.

3 голосов
/ 02 января 2013
  1. Загрузите последнюю версию драйвера JDBC (т.е. sqljdbc4.0) с веб-сайта Microsoft
  2. Напишите программу следующим образом:

    import java.sql.*;
    class testmssql
    {
        public static void main(String args[]) throws Exception
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            Connection      con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;
                    databaseName=chapter16","sa","123");//repalce your databse name and user name
                Statement st=con.createStatement();
            ResultSet rs=st.executeQuery("Select * from login");//replace your table name
            while(rs.next())
            {
                String s1=rs.getString(1);
                String s2=rs.getString(2);
                System.out.println("UserID:"+s1+"Password:"+s2);
            }
            con.close();
        } 
    }
    
  3. Скомпилируйте программу и установите jar classpath, а именно: set classpath=C:\jdbc\sqljdbc4.jar;.; Если вы сохранили файл jar в C:\jdbc после загрузки и извлечения.

  4. Запустите программу и убедитесь, что ваша служба TCP / IP включена. Если не включен, выполните следующие действия:
    1. Перейдите в Пуск -> Все программы -> Microsoft SQL Server 2008 -> Инструменты настройки -> Диспетчер конфигурации SQL Server
    2. Разверните Sql Server Network Configuration: выберите свой экземпляр MS SQL Server, а именно. MSQSLSERVER и включите TCP / IP.
    3. Перезагрузите ваш экземпляр MS SQL Server. Это также можно сделать из меню правой кнопки мыши Microsoft SQL Server Management Studio на корневом уровне вашего экземпляра сервера MS SQL
3 голосов
/ 08 июля 2011

Если ваше databaseName значение верное, используйте это: DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")

0 голосов
/ 07 октября 2016

Именованные экземпляры?

URL: jdbc: sqlserver: // [имя_сервера] [\ имя_экземпляра] [: номер_порта] [; свойство = значение]

Примечание: обратный слеш

0 голосов
/ 22 августа 2012

Последний драйвер подключения JDBC MSSQL можно найти на JDBC 4.0

Файл класса должен находиться в пути к классам. Если вы используете Eclipse, вы можете легко сделать то же самое, выполнив следующее ->

Щелкните правой кнопкой мыши Имя проекта -> Свойства -> Путь сборки Java -> Библиотеки -> Добавить внешние банки

Также, как уже указывалось @Cheeso, правильный способ доступа - это jdbc: sqlserver: // server: port; DatabaseName = dbname

А пока, пожалуйста, найдите пример класса для доступа к БД MSSQL (в моем случае - 2008).

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

public class ConnectMSSQLServer
{
   public void dbConnect(String db_connect_string,
            String db_userid,
            String db_password)
   {
      try {
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
         Connection conn = DriverManager.getConnection(db_connect_string,
                  db_userid, db_password);
         System.out.println("connected");
         Statement statement = conn.createStatement();
         String queryString = "select * from SampleTable";
         ResultSet rs = statement.executeQuery(queryString);
         while (rs.next()) {
            System.out.println(rs.getString(1));
         }
         conn.close();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

   public static void main(String[] args)
   {
      ConnectMSSQLServer connServer = new ConnectMSSQLServer();
      connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD");
   }
}

Надеюсь, это поможет.

0 голосов
/ 05 марта 2009

Вы можете попробовать следующее. Работает нормально в моем случае:

  1. Загрузить текущий JTDS JDBC драйвер
  2. Поместите jtds-x.x.x.jar в ваш путь к классам.
  3. Скопируйте ntlmauth.dll в windows / system32. Выберите DLL на основе вашего оборудования x86, x64 ...
  4. URL-адрес соединения: 'jdbc: jtds: sqlserver: // localhost: 1433 / YourDB', вам не нужно указывать имя пользователя и пароль.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...