7 de marzo de 2013

Conectar Java-SQL utilizando ODBC

Primero se debe acceder desde Panel de Control-->Origenes de Datos-->Administrador de origenes de datos ODBC-->DSN de sistema y agregamos un nuevo DSN de sistema


Ahora se debe seleccionar el controlador, seleccionar el SQL Server Native Client 10.0


Se debe escribir un nombre, en mi caso usare SQLJava, la descripción no es necesaria pero si debemos especificar el servidor al que nos vamos a conectar, para el servidor desplegamos las opciones y automáticamente estarán los servidores SQL instalados en tu computadora, seleccionar y presionar Siguiente


Esta es la parte de autentificacion, si usaras identificación integrada con Windows deja la primera opción seleccionada, sino pues selecciona la segunda opción y escribe el Login ID y Password segun lo especificado en las credenciales de SQL, luego presionamos Siguiente


Aquí se selecciona la base de datos especifica a la que se va conectar, damos Siguiente


La ultima ventana del asistente, puedes hacer cualquier cambio en estas opciones, al terminar presionar el botón Finalizar 


Ahora en la ventana Administrador de orígenes de datos ODBC, ya tenemos el DSN de sistema de SQL llamado SQLJava disponible como puente de datos entre Java y SQL, ahora a programar 


Este es el código para enlazar Java con SQL vía ODBC, como se ve, se utiliza el mismo string en Class.forName utilizado para conectar Java-MySQL via ODBC, lo que cambia sera el ultimo termino del string url y la información del user y pass, aquí esta el código:
package javaapplication1;
import java.sql.*;

public class JavaApplication1 {
static String user="";
static String pass="";
static String url="jdbc:odbc:SQLJava";
   
    public static void main(String[] args) {
   
    Connection cnn=null;
        try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    cnn=DriverManager.getConnection(url, user, pass);
    if(cnn!=null){
    System.out.println("Se conecto a la base de datos");
    }else{System.out.println("No se conecto a la base de datos");}
    }catch(ClassNotFoundException cnfex){
    cnfex.printStackTrace();
    }catch(SQLException sqlex){
        sqlex.printStackTrace();
    }catch(Exception ex){
        ex.printStackTrace();
    }}}