En esta ocasión veremos como ejecutar sentencias SQL en Java, tomando en cuenta la conexión que realizamos a la base de datos anteriormente.
Para este ejemplo uso una tabla llamada «usuarios», la cual tiene únicamente 3 campos: id(autoinc), nombre y contraseña
El código de la clase es el siguiente:
import java.sql.*;
public class Conexion {
private String user;
private String password;
private String db;
private String host;
private String url;
private Connection conn = null;
private Statement stm;
private ResultSet rs;
public Conexion(String usuario, String contraseña, String bd, String servidor)
{
this.user = usuario;
this.password = contraseña;
this.db = bd;
this.host = servidor;
this.url = "jdbc:mysql://" + this.host + "/" + this.db;
}
public void conectar()
{
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(url, user, password);
if (conn != null)
{
System.out.println("Conexión a base de datos "+url+" ... Ok");
stm = conn.createStatement();
}
}
catch(SQLException ex) {
System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
}
catch(ClassNotFoundException ex) {
System.out.println(ex);
}
}
public void consultar() throws SQLException
{
rs = stm.executeQuery("SELECT * FROM usuarios");
while(rs.next())
{
System.out.println(rs.getString("nombre"));
System.out.println(rs.getString("contraseña"));
}
}
public void actualizar() throws SQLException
{
stm.execute("UPDATE usuarios SET nombre='nombre usuario' WHERE id="+1);
}
public void insertar() throws SQLException
{
stm.execute("INSERT INTO usuarios (nombre, contraseña) VALUES ('new_name', 'new_Pass')");
}
public void eliminar() throws SQLException
{
stm.execute("DELETE FROM usuarios WHERE id="+1);
}
}
Únicamente resta crear una instancia de la clase y empezar a utilizar sus métodos.
gracias por este codigo tan paloma. he aprendido mucho
[…] Ejecutar SQL en Java […]
[…] eliminar, consultar) pero implementadas de una “mejor manera” comparada con los otros post que hay en este blog sobre este tema (tampoco quiero decir que sea la mejor ni mucho […]
orale que bien todo ezto zi te ayuda a mi me ezta empezando a zacar de apuroz pero ze podra acer que laz conzultaz ze manejen dezde un jbutton.
@gil: Claro que sí, simplemente crea una instncia de la clase y manda llamar el método que deseas ejecutar dentro del botón, lo cual quedaría algo así:
Conexion con = new Conexion(usuario, contraseña, bd, servidor);
con.consultar();
Eso es si lo haces dentro de NetBeans, en caso de que no, pues creas un botón y colocas ese código dentro de la acción del mismo.
va graciaz y zi eztoy trabajando en netbeanz pero ezo zi lo entiendo lo que no entiendo ez como ze le ace para que el metodo de inzertar o el que zea obtenga loz valorez de laz cajaz de texto ze puede??
Perdon por la tardansa para responder pero eh andado algo ocupado. Pues aquí lo que puede hacer es usar el método getText(), por ejemplo: mi_textField.getText().
public void insertar() throws SQLException
{
stm.execute(”INSERT INTO usuarios (nombre, contraseña) VALUES (’mi_textField1.getText(), mi_textField2.getText())”);
}
Creo que quedaría algo así, espero que te sirva aunque te recomiendo que le eches un vistaso a este post donde creo yo se muestra una mejor implementación de una clase parecida a esta en Java
Me parece muy bueno el ejemplo y practico los comentarios… sin embargo .. he estado buscando como realizar una funcion BUSCAR. algo asi como en Visual Basic. donde la funcion te permite localizar un dato especifico en toda la base de datos … y la verdad llevo semanas en eso y no he podido lograrlo …
Me gustaria saber si existe en java alguna clase que realize la misma funcion que el Parametro BUSCAR de Visual Basic ….
Si tu base de datos está en MySQL pues hacer consultas…por el ejemplo si quieres buscar el nombre de una tabla llamada alumnos podrias usar algo como:
SELECT * FROM TABLA_ALUMNOS WHERE NOMBRE = «FRAGO»
saludos!!
muchas gracias por tu codigo saludos men….