Инструкция. Начало работы с Microsoft JDBC

Переводы статьи Переводы статьи
Код статьи: 313100
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье описывается процесс подключения к серверу SQL Server 2000 с помощью драйвера Microsoft SQL Server 2000 для JDBC.


Примечание. Инструкции по установке драйвера Microsoft SQL Server 2000 для JDBC см. в руководстве по установке драйвера Microsoft SQL Server 2000 для JDBC.

После установки драйвера Microsoft SQL Server 2000 для JDBC к базе данных из программы можно подключиться двумя способами: с помощью URL-адреса подключения или с помощью источника данных JNDI. В этой статье описывается процесс настройки и проверки подключения к базе данных с помощью URL-адреса подключения.

Один из способов подключиться к базе данных с помощью диспетчера драйверов JDBC заключается в использовании метода getConnection класса DriverManager. Самый простой способ использования этого метода заключается в использовании строкового параметра, содержащего URL-адрес, имя пользователя и пароль. В следующих разделах данной статьи описывается процесс загрузки драйвера Microsoft SQL Server 2000 для JDBC из программы JDBC.

Присвоение значения переменной CLASSPATH

Драйвер Microsoft SQL Server 2000 для файлов JDBC с расширением JAR должен быть указан в переменной CLASSPATH. Переменная CLASSPATH представляет собой строку поиска, которую виртуальная машина Java (JVM) использует для поиска драйверов JDBC на компьютере. Если драйверы не перечислены в переменной CLASSPATH, при попытке загрузить драйвер появляется следующее сообщение об ошибке:
java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver
Настройте системную переменную CLASSPATH таким образом, чтобы она включала следующие записи:
  • \Путь установки\Lib\Msbase.jar
  • \Путь установки\Lib\Msutil.jar
  • \Путь установки\Lib\Mssqlserver.jar
Ниже приведен пример настроенной переменной CLASSPATH:
CLASSPATH=.;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\program files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar

Регистрация драйвера

Регистрация драйвера указывает диспетчеру драйверов JDBC, какой драйвер следует загрузить. При загрузке драйвера с помощью функции class.forName необходимо указать имя драйвера. Это имя драйвера для драйвера Microsoft SQL Server 2000 для JDBC:
com.microsoft.jdbc.sqlserver.SQLServerDriver
В приведенном ниже примере кода показано, как зарегистрировать драйвер:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

Передача URL-адреса подключения

Сведения о подключении к базе данных необходимо передать в виде URL-адреса подключения. Это шаблон URL-адреса для драйвера Microsoft SQL Server 2000 для JDBC. Подставьте в шаблон значения для своей базы данных:
jdbc:microsoft:sqlserver://servername:1433
В приведенном ниже примере кода показано, как указать URL-адрес подключения:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "имя_пользователя", "пароль");
				
Значение имени сервера может быть IP-адресом или именем узла (предполагается, что сеть разрешает имена узлов в IP-адреса). Это можно проверить путем выполнения команды ping для имени узла и проверки того, что отклик приходит с правильного IP-адреса.

Числовое значение после имени сервера — это номер порта, прослушивание которого осуществляет база данных. Значения, перечисленные ранее в данной статье, являются образцами значений по умолчанию. Необходимо обязательно подставить номер порта, используемого базой данных.

Полный список параметров URL-адреса подключения см. в HTML-справке к драйверу Microsoft SQL Server 2000 для JDBC либо в интерактивном руководстве. См. раздел «Свойства строки подключения».

Пример кода для проверки подключения

Приведенный ниже код производит попытку подключения к базе данных и выводит имя базы данных, версию и доступные каталоги. Замените свойства сервера значениями для своего сервера:
import java.*;
public class Connect{
     private java.sql.Connection  con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "pubs";
     private final String userName = "user";
     private final String password = "password";
     // Сообщает драйверу о необходимости использовать сервером побочного курсора, 
     // что позволяет использовать несколько активных выражений 
     // для подключения.
     private final String selectMethod = "cursor"; 
     
     // Конструктор
     public Connect(){}
     
     private String getConnectionUrl(){
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }

     /*
          Вывести свойства драйвера, сведения о базе данных 
     */ 

     public void displayDbProperties(){
          java.sql.DatabaseMetaData dm = null;
          java.sql.ResultSet rs = null;
          try{
               con= this.getConnection();
               if(con!=null){
                    dm = con.getMetaData();
                    System.out.println("Driver Information");
                    System.out.println("\tDriver Name: "+ dm.getDriverName());
                    System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                    System.out.println("\nDatabase Information ");
                    System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                    System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                    System.out.println("Avalilable Catalogs ");
                    rs = dm.getCatalogs();
                    while(rs.next()){
                         System.out.println("\tcatalog: "+ rs.getString(1));
                    } 
                    rs.close();
                    rs = null;
                    closeConnection();
               }else System.out.println("Error: No active Connection");
          }catch(Exception e){
               e.printStackTrace();
          }
          dm=null;
     }     
     
     private void closeConnection(){
          try{
               if(con!=null)
                    con.close();
               con=null;
          }catch(Exception e){
               e.printStackTrace();
          }
     }
     public static void main(String[] args) throws Exception
       {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
       }
}

				
При успешном выполнении данного кода выводятся сведения, подобные приведенным ниже:
Connection Successful!
Driver Information
        Driver Name: SQLServer
        Driver Version: 2.2.0022

Database Information
        Database Name: Microsoft SQL Server
        Database Version: Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
        May 23 2001 00:02:52
        Copyright (c) 1988-2000 Microsoft Corporation
        Desktop Engine on Windows NT 5.1 (Build 2600: )

Avalilable Catalogs
        catalog: master
        catalog: msdb
        catalog: pubs
        catalog: tempdb
					

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

Приведены общие сообщения об ошибках, которые могут возникнуть при попытке подключения к серверу SQL Server.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user 'user'. Причина: Not associated with a trusted SQL Server connection.
Это сообщение об ошибке появляется, если в SQL Server 2000 используется режим проверки подлинности Windows. Драйвер Microsoft SQL Server 2000 для JDBC не поддерживает подключение с использованием проверки подлинности Windows NT. В SQL Server необходимо выбрать смешанный режим проверки подлинности, который позволяет использовать как проверку подлинности Windows, так и проверку подлинности SQL Server.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]This version of the JDBC driver only supports Microsoft SQL Server 2000. You can either upgrade to SQL Server 2000 or possibly locate another version of the driver.
Это сообщение об ошибке появляется при попытке подключиться к серверу SQL Server более ранней версии, чем SQL Server 2000. Драйвер Microsoft SQL Server 2000 для JDBC поддерживает возможность подключения только к SQL Server 2000.

Свойства

Код статьи: 313100 - Последний отзыв: 15 февраля 2011 г. - Revision: 3.3
Ключевые слова: 
kbsqlmanagementtools kbhowtomaster KB313100

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com