Upload
fidel-torres
View
111
Download
5
Embed Size (px)
Citation preview
ACCCEDER A MSSQL2005 EN NETBEANS USANDO JDBC
En este pequeño ejemplo veremos como hacer una conexión a MSSQL2005, usando su driver JBDC, desde NetBeans
Extraeremos el archivo sqljdbc_1.2.2828.100_enu.exe a una carpeta llamada MSSQL2005_JDBC dentro del NetBeans
Dentro de la cual nos aparecerá el archivo sqljdbc.jar que es el driver en si
Dentro de la carpeta auth encontraremos otras 3 carpetas de las cuales en el interior de x86 se encontrara el archivo sqljdbc_auth.dll
Este archivo debemos copiarlo a nuestra carpeta c:\WINDOWS\System32
Abrimos el NetBeans y creamos una nueva aplicación Java a la cual llamaremos MSSQL2005_JDBC
Agregaremos el driver desde el explorador de proyectos; clic derecho en Libraries y escogemos Add Library
Nos aparece la siguiente pantalla
Se podrá apreciar todas las librerías a las cuales podemos acceder. En nuestro caso crearemos una para el nuevo driver JDBC. Clic en Create y le ponemos como nombre MSSQL2005_JDBC_Driver
Con esto habremos agregado a las librerías globales nuestro driver.
La ventaja de que nuestra librería sea global es que a partir de ahora nuestro driver podrá ser agregado a cualquier otro proyecto que se desee tan solo seleccionándolo de esta lista
Para administrar todas nuestras librerías podemos usar el Library Manager desde el menú Tools
Como vemos el driver se agrega a las librerias de nuestro proyecto. Con esto ya podremos hacer la conexión a una BD en MSSQL2005
Agregaremos una nueva clase a la que llamaremos Conexión
Conexión.java
import java.sql.*;import javax.swing.*;
Importamos java.sql.* por el uso de Connection y la clase DriverMapperImportamos javax.swing.* por el uso de JOptionPane para mostrar los mensajes
Implementamos un nuevo procedimiento llamado miConexion
public void miConexion(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=EJEMPLO;integratedSecurity=true;"; Connection cn = DriverManager.getConnection(connectionUrl); } catch (SQLException e) { JOptionPane.showMessageDialog(null,"Excepcion MSSQL: " + e.toString()); } catch (ClassNotFoundException cE) { JOptionPane.showMessageDialog(null,"Excepcion Clase no encotrada: " + cE.toString()); } JOptionPane.showMessageDialog(null, "Conexion exitosa"); }
Class.forName(”com.microsoft.sqlserver.jdbc.SQLServerDriver”) Se carga el driver SQL Server
localhost:1433 Se refiere a la conexión SQL Server, servidor=localhost y puerto=1433 (puerto predeterminado).
databaseName=EJEMPLO Se refiere al nombre de la base de datos a la cual queremos conectar
Llamamos a nuestra conexión desde la clase Main que se creo por defecto junto con nuestro proyecto
Main.java
public class Main { public static void main(String[] args) { Conexion cnn = new Conexion(); cnn.miConexion(); }}
Compilamos el y corremos el proyecto. Si no ocurre ningún error, significa que la conexión se ha establecido satisfactoriamente y deberíamos ver solo este mensaje
ERRORES QUE SE PUEDEN PRODUCIR
Al compilar y ejecutar nuestro proyecto se pueden producir los siguientes errores
Problema 1
Excepcion Clase no encotrada: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Causa1. El archivo de la librería JDBC no a sido cargado correctamente. Tal vez no haz
agregado la librería del archivo “sqljdbc.jar” al proyecto 2. No has importado la librería java.sql.* al proyecto
Solución
1. Agregar la librería apropiada al proyecto
2. Importar la librería java.sql.* al comienzo del código de nuestra conexión
Problema 2
Excepcion SQL: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed. java.net.ConnectException: Connection refused: connect
Causa
1. Se esta tratando de conectar a un SQL Server el cual no tiene el servicio SQL Server corriendo o el servicio no acepta conexiones remotas.
Solución
1. Revisa la cadena que la cadena de conexión tenga el nombre del servidor y puerto correcto
2. Verifica si el servicio del SQL Server esta corriendo 3. Comprueba que tu SQL Server esta configurado para permitir
conexiones remotas4. Desactiva el Firewall de Windows esta activado
Problema 3
SQL Exception: com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
03/11/2008 07:36:40 AM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>ADVERTENCIA: Failed to load the sqljdbc_auth.dll
Causa
1. No se agrego el archivo sqljdbc_auth.dll al directorio del sistema.
Solution
1. Copiar el archivo sqljdbc_auth.dll de la carpeta …\auth\x86, donde extraimos el driver JDBC, a C:\Windows\System32
OJO!! Recordar que el SQLSERVER tiene 2 modos de autentificación:
1. Autentificación de Windows (Seguridad integrada)
“jdbc:sqlserver://serverName:portNumber;databaseName=DatabaseName;integratedSecurity=true;”
No se necesita de un inicio de sesión, es decir una conexión sin user ni password
Es obligatorio copiar el archivo sqljdbc_auth.dll a C:\Windows\System32
2. Autentificación de SQL Server
“jdbc:sqlserver://serverName:portNumber;databaseName=DatabaseName;user=UserName;password=Password;”
Se necesita de un inicio de sesión obligatorio, por ejemplo el super usuario ‘sa’ y su password
No es necesario copiar el archivo sqljdbc_auth.dll a C:\Windows\System32