sábado, 7 de agosto de 2010

CONECCION JAVA CON SQL SERVER 2005

Bueno este tema lo vi en muchos foros pero sin muchas respuestas o si las tenian eran escuetas y no llegaban a solucionar.
En este articulo les mostrare como conectar sql server 2005 con java algo a veces muy complicado si es que no se tienen las bases o surge la desesperacion por que no salia a la primera o intentaban y no les funkaba.
Necesitaremos para esto
  • el driver jdbc
  • Sql server 2005 (yo use la version express como practica ademas es gratiuta y orientada a educacion)
  • Obviamente el ide java netbeans o otro ide
Les dejo entonces el link para el driver jdbc 2.0 http://www.4shared.com/file/blcyB5Ir/sqljdbc_201803100_esn.html

lo descargan y lo extraen en cualquier directorio yo lo extraje en c:

PEro basta de texto hagamos tomas de pantalla asi creo yo que es la mejor forma de aprender
Imagen 1















Imagen 2














Imagen 3














Imagen 4














Imagen 5














Bueno ya tenemos preparado los archivos checken que la dll la tengo que copiar al c:/windows o a system32 dependiendo del path que tenga su sistema.
Ahora necesitamos el codigo java necesario para hacer la coneccion pero hay 2 formas de conectarnos uno textual osea puro codigo y otro de manera grafica esto nos ayudara a encontrar
la url de coneccion.
Dejo la imagen del modo grafico
Asi generaremos la url de coneccion que nos servira para el codigo

Dejo entonces el codigo java:


package sql;

/**
*
* @author JONATHAN
*/
import java.sql.*;
import javax.swing.JOptionPane;

public class Test {

String url_servidor = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=HOTELSQL1;integratedSecurity =true";

/*
* En realidad la url de conecion es
* jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=HOTELSQL1;integratedSecurity =true
* pero como java no permite \ solo se le agrega uno mas y no hay problema
*/

Test() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 version
/*
* Cadena de clase para el caso de este conector 2.0 la cadena va asi ademas ofrece
* compatibilidad con SQL EXPRESS 2005 y con coneccion 2008
*/
/*
* Usando la maneja sencilla con una sola url de coneccion la anterior comentada es usando metodos en el caso
* se cambien algunas propiedades
*/
Connection con = DriverManager.getConnection(url_servidor);
if (con != null) {
String url_consulta = "SELECT DESCRIPCION FROM PLATOS WHERE (CODI_TIPO = 'FONDO')";
Statement st = con.createStatement();
ResultSet resp = st.executeQuery(url_consulta);
while (resp.next()) {
System.out.println(resp.getObject(1));// El metodo getObject llama a las columnas
//ya sea por su nombre o su indice de columna en este caso comensando en 1
}
st.close();
}
con.close();//se cierra la conexion con la base de datos
System.exit(0);
} catch (SQLException excepcionSql) { //excepcionSql = puede ponerle otro nombre
JOptionPane.showMessageDialog(null, excepcionSql.getMessage(),
"Error en base de datos", JOptionPane.ERROR_MESSAGE);
} //errores con la carga del controlador de la base de datos(Driver)
catch (ClassNotFoundException claseNoEncontrada) {
JOptionPane.showMessageDialog(null, claseNoEncontrada.getMessage(),
"No se encontró el controlador", JOptionPane.ERROR_MESSAGE);
}
}

public static void main(String args[]) throws Exception {

Test test = new Test();
}

}

Ahora existe un proyecto que hice que esta algo mas parametrizado en el cual podemos configurar otras variables descargenlo aqui.

Ahora debemos agregar la libreria que es el jar a la carpeta libreria del proyecto como se muestra aqui.














Pero tambien podemos hacer consultas ya gregar datos de modo grafico les dejo las imagens de un ejemplo de como consultar una tabla.
Las variaciones que se hacen con con comandos SQL















Imagen 2














Imagen 3














Imagen 4














Imagen 5