Hola a todos, esta es la primera publicacion de este blog y lo quise hacer con un tema que me tuvo muy ocupado y que ahora se los muestro a todos ustedes, se tarta de Conexion SQL Server 2005 con Java y NetBeans.
Para poder conectar una BD creada en SQL Server 2005 y mostrarla en una interfaz grafica hecha en java con NetBeans, debemos seguir los siguientes pasos :
1. Crear la BD
2. Crear un puente para la conexion en ODBC ya que no estamos trabajando con un nombre de usuario ni contraseña, para ello nos dirigimos a Inicio/Configuracion/Panel de Control/Herramientas Administrativas/Orígenes de datos (ODBC), y realizamos lo siguiente :
El campo donde dice "Nombre" es importamte por que tambien lo utilizaremos en el codigo de conexion, en este caso le ponemos "prueba".
Donde dice "Servidor" le ponemos el nombre del servidor con el que estamos trabajando, el nombre lo podemos encontrar en la pestaña "Resumen" de la ventana del SQL Server 2005, le damos siguiente.
En esta parte activamos el Check que se muestra y selecionamos en nombre de la base de datos con la que estamos trabajando en este caso yo estoy trabajando con la base de datos "BDconexion", le damos "Siguiente" y "Finalizar"
3. Ahora procedemos a crear la clase Conexion con SQL Server 2005 Java NetBeans cuyo codigo es el siguiente:
import java.sql.*; import javax.swing.*; public class Conexion { Connection Conec; Statement St; /*Creando la instania de conexion */ public Conexion() { try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Conec =DriverManager.getConnection("jdbc:odbc:prueba"); // el nombre es el mismo de la imagen 3 if (Conec != null) { System.out.println(); System.out.println("Successfully connected"); System.out.println(); System.out.println("\nDriver Information"); } } catch ( SQLException excepcionSql) { JOptionPane.showMessageDialog( null, excepcionSql.getMessage(),"Error en base de datos", JOptionPane.ERROR_MESSAGE ); } catch ( ClassNotFoundException claseNoEncontrada ) { JOptionPane.showMessageDialog( null, claseNoEncontrada.getMessage(),"No se encontró el controlador", JOptionPane.ERROR_MESSAGE ); } } //Metodo de ejecucion de insert,update,delete a la base de datos public String ejecutar(String sql) { String error=""; try { St=Conec.createStatement(); St.executeQuery(sql); } catch(Exception ex) { error = ex.getMessage(); } return(error); } //Metodo para las consultas a la base de datos public ResultSet Consulta(String sql) { ResultSet res = null; try { Statement s = Conec.createStatement(); res = s.executeQuery(sql); } catch (Exception e) { e.printStackTrace(); } return res; } }
4. Ahora para poder utlizar el codigo de conexion en un evento de un boton seria asi:
Para insertar datos en la BD desde un formulario:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { Conexion cxn = new Conexion();// llamamos a la clase conexion String msg =cxn.ejecutar("insert into tabla values ('"+jTextField1.getText()+"','"+jTextField2.getText()+"')"); }
Para hacer consultas a la BD y mostrarlo en un JTable :
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { Conexion cxn = new Conexion();// llamamos a la clase Conexion MostrarJTable tabla=new MostrarJTable();//llamamos a la clase MostrarJTable DefaultTableModel modelo=new DefaultTableModel(); ResultSet res = cxn.Consulta("select * from tabla"); modelo=tabla.Imprimir(res,modelo); jTable1.setModel(modelo); }
Y eso seria todo respecto a Conexion SQL Server 2005 con Java y NetBeans; espero les haya servido de gran ayuda, pronto estare publicando el codigo de la clase "MostrarJTable " y subire el proyecto completo , esten atentos.
Y no se olviden de colaborar, gracias...
25 comentarios :
▼▲ Mostrar / Ocultar comentariosoye tu código realmente me esta sirviendo mucho, solo que al hacer la prueba me aparece el error
"No se encontró controlador"
ya valide muchas cosas pero no salgo de ahí, el controlador si esta instalado
que me recomiendas
Hola... no se como contactarte pero lo que te faltaria seria un driver o controlador sql que lo tengo aqui:
http://codigos-taz.blogspot.com/2011/01/driver-sql-sever-2005-para-conexion-con.html
Espero te sirva
mmm sigo el link y me dice que el archivo no existe D:
te dejo mi correo alma12_26@hotmail.com
pero el controlador segun yo ya lo tengo instalado y todo y si me lo reconoce, no se donde esta el problema
oe vacan tu aporte ponte las otras clases q muestras pues
Gracias... muy pronto estare publicando nuevos proyectos y programas interesantes, sigan apoyando!!!
hola
es para ver si me pueden ayudar para hacer un update y el delete que falta asi como esta en la parte de arriba desde que declaran una clase hasta que termine la clase es decir con el codigo java completo por que e intentado con muchos codigo de internet pero no me da ninguno de antemano gracias
excelente me sirvio de mucho
MostrarJTable tabla=new MostrarJTable();//llamamos a la clase MostrarJTable
disculpa fijate en tu codigo no encuentro donde publicaste esta clase pues tu codigo me ha ayudado mucho pero esto si no lo encuentro.. me podrias decir que es lo que hace??
Hola, lo que hace esta clase es esto:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class MostrarJTable {
public DefaultTableModel Imprimir(ResultSet res,DefaultTableModel modelo){
int i;
try {
ResultSetMetaData rmeta = res.getMetaData();
int numColumnas= rmeta.getColumnCount();
for(i=1;i<=numColumnas;i++)
{
modelo.addColumn(rmeta.getColumnName(i));
}
while (res.next())
{
Object [] fila = new Object[numColumnas];
for (i=0;i<numColumnas;i++)
fila[i] = res.getObject(i+1);
modelo.addRow(fila);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Error: en la creacion de la tabla "+e);
}
return modelo;
}
}
Gracias muy buen Tutorial, lo hare y te comento
Gracias nuevamente
funciona con sql 2008 tambien?
Ps me sirvio algo tu codigo amigo te felicito para hacer el trabajo de que me dejaron en el tec ^_^
de nada "gera" estamos para ayudar
:( puedes explicarme la parte de servidor, sirve para el 2008?
no lo he probado pero anda perfecto para el sql server 2005
Muchas gracias!
Me salvaste!
:D
hola disculpa me marca error dice no se encontro en el controlador si me pudieras ayudar seria de mucha ayuda gracias
hola soy yo de nuevo me marca otro error me dice que "error de inicio de sesion del usuario. el usuario no esta asociado a una conexion de sql server de confianza" si me pudieras ayudar te agradeceria mas de lo qeu estoy
mas informacion acerca del driver aqui:
http://codigos-taz.blogspot.com/2011/01/driver-sql-sever-2005-para-conexion-con.html
te falto el metodo de la tabla "tabla.Imprimir(res,modelo)"...
este es el metodo que falta, espero te sirva:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class MostrarJTable {
public DefaultTableModel Imprimir(ResultSet res,DefaultTableModel modelo){
int i;
try {
ResultSetMetaData rmeta = res.getMetaData();
int numColumnas= rmeta.getColumnCount();
for(i=1;i<=numColumnas;i++)
{
modelo.addColumn(rmeta.getColumnName(i));
}
while (res.next())
{
Object [] fila = new Object[numColumnas];
for (i=0;i<numColumnas;i++)
fila[i] = res.getObject(i+1);
modelo.addRow(fila);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Error: en la creacion de la tabla "+e);
}
return modelo;
}
}
Buenas, si haces la conexión por ODBC siempre necesitas el controlador? pensé que no se necesitaba tal como en MySQL que o bien lo haces con el connector JDBC o por ODBC que son dos cosas distintas, me podrías decir si es lo mismo en SQL Server o soy el que esta equivocado por favor
Hola, confome a mi pregunta anterior estaba investigando y no necesitas agregar al proyecto el connector SQL para Java si te conectas vía ODBC
puedes dejar el url="jdbc:odbc:prueba;";
y estos valores:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Conec =DriverManager.getConnection(url);
y así no debes agregar nada a tu proyecto, en verdad no se porque en tu ejemplo lo utilizas, si tienes tiempo me puedes explicar porque si te conectas vía ODBC tienes que agregar el connector JDBC para SQL por favor
Para el caso de SQLServer si es necesario el controlador para poder lograr la conexion nativa con el servidor via ODBC, se pude instanciar la llamada utilizando JDBC sin la necesidad de utilizar el controlador, pero se corre el riesgo de perder la conexion al momento de gestionar varias peticiones al servidor. Bueno utiliza la que te parezca mejor. Gracias por preguntar.
Muy bueno :)
Publicar un comentario
Deja tus comentarios respecto al contenido de este post