COMO: Começar a utilizar o Microsoft JDBC

Traduções de Artigos Traduções de Artigos
Artigo: 313100 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como ligar ao SQL Server 2000 utilizando o Microsoft SQL Server 2000 driver for JDBC.


NOTA: para obter instruções de instalação relativas ao Microsoft SQL Server 2000 driver for JDBC, consulte o Microsoft SQL Server 2000 Driver for JDBC Installation Guide.

Depois de instalar o Microsoft SQL Server 2000 driver for JDBC, pode ligar a partir do seu programa à base de dados de duas formas: através de um URL de ligação ou de uma origem de dados JNDI. Este artigo descreve como configurar e testar a ligação à base de dados utilizando um URL de ligação.

Uma forma de ligar a uma base de dados é através do gestor de controladores JDBC utilizando o método getConnection da classe DriverManager. A maneira mais simples de utilizar este método consiste em utilizar um parâmetro de cadeia que contenha um URL, um nome de utilizador e uma palavra-passe. As secções que se seguem neste artigo descrevem como carregar o Microsoft SQL Server 2000 driver for JDBC a partir do programa JDBC.

Definir a variável CLASSPATH

Os ficheiros .jar do Microsoft SQL Server 2000 driver for JDBC têm de estar listados na variável CLASSPATH. A variável CLASSPATH representa a cadeia de procura utilizada pela máquina virtual de Java (JVM) para localizar controladores JDBC no computador. Se os controladores não estiverem listados na variável CLASSPATH, receberá a seguinte mensagem de erro quando tentar carregar o controlador:
java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver
Defina a variável CLASSPATH de sistema de modo a incluir as seguintes entradas:
  • \O caminho de instalação\Lib\Msbase.jar
  • \O caminho de instalação\Lib\Msutil.jar
  • \O caminho de instalação\Lib\Mssqlserver.jar
Este é um exemplo de uma variável CLASSPATH configurada:
CLASSPATH=.;c:\programas\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\programas\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\programas\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar

Registar o controlador

A operação de registo do controlador indica qual o controlador que o gestor de controladores JDBC deverá carregar. Quando carrega um controlador utilizando a função class.forName, tem de especificar o nome do controlador. Este corresponde ao nome do Microsoft SQL Server 2000 Driver for JDBC:
com.microsoft.jdbc.sqlserver.SQLServerDriver
O seguinte código de exemplo demonstra como registar o controlador:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

Passar o URL de ligação

Tem de passar as informações de ligação à base de dados sob a forma de um URL de ligação. Este é um URL modelo para o Microsoft SQL Server 2000 Driver for JDBC. Substitua os valores de acordo com a sua base de dados:
jdbc:microsoft:sqlserver://nomeservidor:1433
O código de exemplo que se segue demonstra como especificar um URL de ligação:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
				
Os valores do nome de servidor podem ser um endereço de IP ou um nome de anfitrião (partindo do princípio que a sua rede resolve nomes de anfitrião para endereços de IP). Para verificar se é o seu caso, pode efectuar o ping ao nome de anfitrião e verificar se recebe uma resposta com o endereço de IP correcto.

O valor numérico a seguir ao nome do servidor corresponde ao número de porta de escuta da base de dados. Os valores listados anteriormente neste artigo são valores predefinidos de exemplo. Certifique-se de que substitui o número de porta que a base de dados está a utilizar.

Para obter uma lista completa de parâmetros de URLs de ligação, consulte a ajuda HTML do Microsoft SQL Server 2000 Driver for JDBC ou consulte o Online Guide. Consulte a secção "Connection String Properties".

Código de exemplo para testar a ligação

O seguinte código de exemplo tenta ligar à base de dados e apresenta o nome, a versão e os catálogos disponíveis da base de dados. Substitua as propriedades do servidor pelos valores do seu servidor:
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";
     // Informs the driver to use server a side-cursor, 
     // which permits more than one active statement 
     // on a connection.
     private final String selectMethod = "cursor"; 
     
     // Constructor
     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;
      }

     /*
          Display the driver properties, database details 
     */ 

     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();
       }
}

				
Se este código tiver êxito, o resultado será semelhante ao seguinte:
Ligação estabelecida com êxito!
Informações sobre o controlador
        Nome do controlador: SQLServer
        Versão do controlador: 2.2.0022

Informações sobre a base de dados
        Nome da base de dados: Microsoft SQL Server
        Versão da base de dados: Microsoft SQL Server  2000 - 8.00.384 (Intel X86)
        23 de Maio de 2001 00:02:52
        Copyright (c) 1988-2000 Microsoft Corporation
        Desktop Engine on Windows NT 5.1 (Build 2600: )

Catálogos disponíveis
        catálogo: master
        catálogo: msdb
        catálogo: pubs
        catálogo: tempdb
					

Resolução de problemas de conectividade básica

Estas são mensagens de erro comuns que poderão ocorrer quando tentar ligar ao SQL Server:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user 'utilizador'. Reason: Not associated with a trusted SQL Server connection.
Esta mensagem de erro ocorrerá se o modo de autenticação do SQL Server 2000 estiver definido como autenticação do Windows. O Microsoft SQL Server 2000 driver for JDBC não suporta ligações que utilizem a autenticação do Windows NT. Tem de definir o modo de autenticação do SQL Server como modo misto, o que permite a autenticação do Windows e a autenticação do 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.
Esta mensagem de erro ocorrerá quando tentar ligar a uma versão do SQL Server anterior à do SQL Server 2000. O Microsoft SQL Server 2000 driver for JDBC suporta apenas conectividade com o SQL Server 2000.

Propriedades

Artigo: 313100 - Última revisão: 16 de maio de 2011 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbsqlmanagementtools kbhowtomaster KB313100

Submeter comentários

 

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