etBeans6.1_&_MSSQL2005

13
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

Transcript of etBeans6.1_&_MSSQL2005

Page 1: etBeans6.1_&_MSSQL2005

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

Page 2: etBeans6.1_&_MSSQL2005

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

Page 3: etBeans6.1_&_MSSQL2005

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

Page 4: etBeans6.1_&_MSSQL2005

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

Page 5: etBeans6.1_&_MSSQL2005

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

Page 6: etBeans6.1_&_MSSQL2005

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

Page 7: etBeans6.1_&_MSSQL2005

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