CÓMO: Comenzar con Microsoft JDBC

Seleccione idioma Seleccione idioma
Id. de artículo: 313100 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo conectar con SQL Server 2000 utilizando el controlador de Microsoft SQL Server 2000 para JDBC.


NOTA: Para ver instrucciones de instalación para el controlador de Microsoft SQL Server 2000 para JDBC, consulte el Manual de instalación del controlador de Microsoft SQL Server 2000 para JDBC.

Después de instalar el controlador de Microsoft SQL Server 2000 para JDBC, hay dos formas de conectarse desde el programa a la base de datos: con una dirección URL de conexión o con un origen de datos JNDI. En este artículo se describe cómo configurar y probar la conexión de base de datos mediante una dirección URL de conexión.

Una forma de conectarse a una base de datos es mediante el Administrador de controladores JDBC utilizando el método getConnection de la clase DriverManager. La manera más sencilla de utilizar este método toma un parámetro de cadena que contiene una dirección URL, un nombre de usuario y una contraseña. En las próximas secciones de este artículo se describe cómo cargar el controlador de Microsoft SQL Server 2000 para JDBC desde su programa JDBC.

Para establecer la variable CLASSPATH

Los archivos .jar del controlador de Microsoft SQL Server 2000 para JDBC deben enumerarse en la variable CLASSPATH. La variable CLASSPATH es la cadena de búsqueda que la máquina virtual de Java (JVM) utiliza para buscar los controladores JDBC en su equipo. Si los controladores no se muestran en la variable CLASSPATH, aparecerá el mensaje de error siguiente cuando intente cargar el controlador:
java.lang.ClassNotFoundException: com/microsoft/jdbc/sqlserver/SQLServerDriver
Establezca la variable CLASSPATH del sistema de manera que incluya las entradas siguientes:
  • \Su ruta de instalación\Lib\Msbase.jar
  • \Su ruta de instalación\Lib\Msutil.jar
  • \Su ruta de instalación\Lib\Mssqlserver.jar
Esto es un ejemplo de una variable CLASSPATH configurada:
CLASSPATH=.;c:\archivos de programa\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\archivos de programa\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;c:\archivos de programa\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar

Para registrar el controlador

Al registrar el controlador se indica al Administrador de controladores JDBC qué controlador debe cargar. Cuando carga un controlador utilizando la función class.forName, debe especificar el nombre del controlador. Éste es el nombre del controlador de Microsoft SQL Server 2000 para JDBC:
com.microsoft.jdbc.sqlserver.SQLServerDriver
En el código de ejemplo siguiente se muestra cómo registrar el controlador:
Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
				

Para pasar la dirección URL de conexión

Debe pasar la información de conexión con la base de datos en forma de una dirección URL de conexión. Esta es una dirección URL plantilla para el controlador de Microsoft SQL Server 2000 para JDBC. Reemplace los valores para su base de datos:
jdbc:microsoft:sqlserver://servername:1433
En el código de ejemplo siguiente se muestra cómo especificar una dirección URL de conexión:
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");
				
Los valores de nombre de servidor pueden ser una dirección IP o un nombre de host (suponiendo que su red resuelta los nombres de host a direcciones IP). Puede probarlo si hace ping al nombre de host y comprueba que recibe una respuesta con la dirección IP correcta.

El valor numérico que hay después del nombre de servidor es el número de puerto en el que escucha la base de datos. Los valores presentados anteriormente en este artículo son valores predeterminados de ejemplo. Asegúrese de reemplazar el número de puerto que utiliza su base de datos.

Para obtener una lista completa de los parámetros de dirección URL de conexión, vea la Ayuda HTML del controlador de Microsoft SQL Server 2000 para JDBC o vea el Manual en pantalla. Consulte la sección "Propiedades de cadena de conexión".

Código de ejemplo para probar la conexión

El ejemplo de código siguiente intenta conectar con la base de datos y muestra el nombre de la base de datos, su versión y los catálogos disponibles. Reemplace las propiedades del servidor con los valores para su 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"; // Indica al controlador que debe utilizar un cursor de servidor, // lo que permite más de una instrucción activa // en una conexión. 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("Conexión correcta."); }catch(Exception e){ e.printStackTrace(); System.out.println("Error de seguimiento en getConnection() : " + e.getMessage()); } return con; }

     /* Mostrar las propiedades del controlador y los detalles de la base de datos */ 

     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("Información del controlador"); System.out.println("\tNombre del controlador: "+ dm.getDriverName()); System.out.println("\tVersión del controlador: "+ dm.getDriverVersion ()); System.out.println("\nInformación de la base de datos "); System.out.println("\tNombre de la base de datos: "+ dm.getDatabaseProductName()); System.out.println("\tVersión de la base de datos: "+ dm.getDatabaseProductVersion()); System.out.println("Catálogos disponibles "); rs = dm.getCatalogs(); while(rs.next()){ System.out.println("\tcatálogo: "+ rs.getString(1)); } rs.close(); rs = null; closeConnection(); }else System.out.println("Error: No hay ninguna conexión activa"); }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(); } }

				
Si este código es correcto, el resultado es similar al siguiente:
Conexión correcta. Información del controlador Nombre del controlador: SQLServer Versión del controlador: 2.2.0022

Información de la base de datos Nombre de la base de datos: Microsoft SQL Server Versión de la base de datos: Microsoft SQL Server  2000 - 8.00.384 (Intel X86) 23 de mayo de 2001 00:02:52 Copyright (c) 1988-2000 Microsoft Corporation Desktop Engine en Windows NT 5.1 (Compilación 2600: )

Catálogos disponibles catálogo: master catálogo: msdb catálogo: pubs catálogo: tempdb
					

Solucionar problemas de conectividad básica

He aquí los mensajes de error más frecuentes que pueden aparecer cuando intenta conectar con el servidor SQL:
java.sql.SQLException: [Microsoft][Controlador de SQL Server 2000 para JDBC][SQLServer] Error de inicio de sesión del usuario 'usuario'. Motivo: no está asociado a una conexión de SQL Server de confianza.
Este mensaje de error se produce si el modo de autenticación de SQL Server 2000 está establecido en el modo de autenticación de Windows. El controlador de Microsoft SQL Server 2000 para JDBC no permite la conexión utilizando la autenticación de Windows NT. Debe establecer el modo de autenticación de SQL Server en el modo mixto, que permite tanto la autenticación de Windows como la autenticación de SQL Server.
java.sql.SQLException: [Microsoft][Controlador de SQL Server 2000 para JDBC]Esta versión del controlador JDBC sólo es compatible con Microsoft SQL Server 2000. Puede actualizarse a SQL Server 2000 o buscar otra versión del controlador.
Este mensaje de error aparece cuando intenta conectarse a una versión de SQL Server anterior a SQL Server 2000. El controlador de Microsoft SQL Server 2000 para JDBC sólo permite la conexión con SQL Server 2000.

Propiedades

Id. de artículo: 313100 - Última revisión: martes, 20 de junio de 2006 - Versión: 3.3
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Driver for JDBC
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2000 Standard Edition
Palabras clave: 
kbhowtomaster KB313100

Enviar comentarios

 

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