Este ejemplo muestra como hacer una conexion a a base de datos y hacer consultas como eliminar, agregar, modificar y listar los datos de la base de datos, usando componentes graficos como botones,campos de texto , jtable y labels, Para mostrar la informacion se usan resultset, etc.y muchas otras cosas Espero y les sea de utilidad para los que quieren aprender mas como yop
AQUI ABAJO LES DEJO EL CODIGO UTILIZADO PARA EL PROYECTO, sigan las instrucciones de los 2 videos. esta facil de entender
package dba;
package dba;
import
java.sql.Connection;
import
java.sql.DriverManager;
import
javax.swing.JOptionPane;
public
class Mysql {
private
static String db="unalm";
private
static String user="root";
private
static String pass="aquitupassword";
private
static String url="jdbc:mysql://localhost:3306/"+db;
private
static Connection Conn;
public
static Connection getConnection(){
try{
Class.forName("com.mysql.jdbc.Driver");
Conn=DriverManager.getConnection(url,
user, pass);
}catch(Exception
e){
JOptionPane.showMessageDialog(null,"Error"+e.getMessage());
}
return Conn;
}
}
----------------------------------------------------------------------------------------------------------
package
form;
import
javax.swing.table.DefaultTableModel;
import
dba.Mysql;
import
java.sql.*;
import
javax.swing.JOptionPane;
public
class Cliente extends javax.swing.JFrame {
DefaultTableModel model;
Connection Conn;
Statement sent;
public
Cliente() {
initComponents();
Conn=Mysql.getConnection();
Deshabilitar();
Llenar();
}
void Deshabilitar(){
txtNombre.setEditable(false);
txtDireccion.setEditable(false);
txtCorreo.setEditable(false);
txtTelefono.setEditable(false);
}
void Limpiar(){
txtNombre.setText("");
txtDireccion.setText("");
txtCorreo.setText("");
txtTelefono.setText("");
}
void Habilitar(){
txtNombre.setEditable(true);
txtCorreo.setEditable(true);
txtDireccion.setEditable(true);
txtTelefono.setEditable(true);
txtNombre.requestFocus();
}
void
Llenar(){
try{
Conn=Mysql.getConnection();
String [] titulos
={"Id","Nombre","Direccion",
"Telefono", "Correo"};
String sql="select * from
contactos";
model=new
DefaultTableModel(null, titulos);
sent=Conn.createStatement();
ResultSet rs=sent.executeQuery(sql);
String fila []= new String [5];
while(rs.next()){
fila [0]=rs.getString("id");
fila
[1]=rs.getString("nombre");
fila
[2]=rs.getString("direccion");
fila
[3]=rs.getString("telefono");
fila
[4]=rs.getString("correo");
model.addRow(fila);
}
jTable1.setModel(model);
}catch(Exception
e){
e.printStackTrace();
}
}
private
void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) {
try{
int fila=jTable1.getSelectedRow();
String sql="delete from contactos
where id="+jTable1.getValueAt(fila,0);
sent=Conn.createStatement();
int n=sent.executeUpdate(sql);
if(n>0){
Llenar();
JOptionPane.showMessageDialog(null, "datos eliminados");
Limpiar();
}
}catch(Exception
e){
JOptionPane.showMessageDialog(null,
"error"+e.getMessage());
}
}
private void
btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
try{
String
sql="insert into contactos ( direccion ,nombre, telefono, correo)" +
"Values (?,?,?,?) ";
PreparedStatement
ps=Conn.prepareCall(sql);
ps.setString(1,
txtNombre.getText());
ps.setString(2,
txtDireccion.getText());
ps.setString(3,
txtTelefono.getText());
ps.setString(4,
txtCorreo.getText());
int
n=ps.executeUpdate();
if(n>0)
JOptionPane.showMessageDialog(null,
"datos guardados");
}catch(Exception
e){
JOptionPane.showMessageDialog(null,
"error"+ e.getMessage());
}
Llenar();
Limpiar();
}
private void
btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {
Limpiar();
Habilitar();
// TODO add your handling code here:
}
private void jTable1MouseClicked(java.awt.event.MouseEvent
evt) {
if(evt.getButton()==1){
try{
Habilitar();
int fila=jTable1.getSelectedRow();
String sql="select * from
contactos where id="+jTable1.getValueAt(fila,0);
sent=Conn.createStatement();
ResultSet rs=sent.executeQuery(sql);
rs.next();
txtNombre.setText(rs.getString("nombre"));
txtDireccion.setText(rs.getString("direccion"));
txtTelefono.setText(rs.getString("telefono"));
txtCorreo.setText(rs.getString("correo"));
}catch(Exception
e){
e.printStackTrace();
}
}
}
private
void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {
try{
String
sql="Update contactos set nombre=?, direccion=?, telefono=?,
correo=?"+
"where id=?";
int fila=jTable1.getSelectedRow();
String
dao=(String)jTable1.getValueAt(fila,0);
PreparedStatement ps=Conn.prepareCall(sql);
ps.setString(1,txtNombre.getText());
ps.setString(2,txtDireccion.getText());
ps.setString(3,txtTelefono.getText());
ps.setString(4,txtCorreo.getText());//valor de campos de texto a pasar a
//BasedeDatos
ps.setString(5,dao);//la llamada sql se muestra en la tabla
int n=ps.executeUpdate();
if(n>0){
Limpiar();
Llenar();
JOptionPane.showMessageDialog(null, "datos modificados");
}
}catch
(Exception e){
JOptionPane.showMessageDialog(null,
"error"+ e.getMessage());
}
// TODO add your handling code here:
}
private
void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
// TODO add your handling code here:
}
public
static void main(String args[]) {
java.awt.EventQueue.invokeLater(new
Runnable() {
public void run() {
new Cliente().setVisible(true);
}
});
}
private javax.swing.JButton btnCerrar;
private javax.swing.JButton btnEliminar;
private javax.swing.JButton btnGuardar;
private javax.swing.JButton btnModificar;
private javax.swing.JButton btnNuevo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane
jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField txtCorreo;
private javax.swing.JTextField
txtDireccion;
private javax.swing.JTextField txtNombre;
private javax.swing.JTextField txtTelefono;
// End of variables declaration
}
Me salvaste en muchas inquietudes que tenía, aunque aún tengo algunas más por ejemplo cuando invocás el método guardar llamas esta sentencia PreparedStatement ps = Conn.prepareCall(sql); la cual no reconozco cual es la función y no me deja compilar.
ResponderEliminarSi pudieras resolverme esta duda te agradecería.
Saludos!
estaria bueno que fueras explicando lo que haces en el video. ;)
ResponderEliminarMuy bueno el ejemplo, gracias
ResponderEliminarestoy haciendo lo mismo pero quiero que al seleccionar los datos de la tabala y le de click en el boton editar se abra otra ventana y los pueda cambiar , despues dar click en el boton gurdar y aparescan en la tabla nuevamente pero editados
ResponderEliminarYa lograste hacerlo yo quiero hacer lo mismo me podrías ayudar
EliminarYa lograste hacerlo yo quiero hacer lo mismo me podrías ayudar
EliminarEl código lo puedes copiar esta arriba del vídeo
Eliminarbuena presentacion me sirvio de mucho :) te felicito eres un gran programador...
ResponderEliminarbuena presentacion me sirvio de mucho :) te felicito eres un gran programador...
ResponderEliminarhola tengo un problema, la funcion de eliminar registro no me funciona me aparece errorjava.lang.NullPointerException, he revisado el codigo y nose donde esta el error
ResponderEliminarpudiera ser que sea otra version de netbeans vez que hay bastantes ya
ResponderEliminary la base de datos ??? pasala!
ResponderEliminarbueno a qui les dejo otro ejemplo mas sencillo de uso de base de datos en netbeans, espero y compartan codigos o links para aprender a programar
ResponderEliminarhttps://programacionparajava.blogspot.mx/2014/08/crear-un-programa-en-java-que-guarde.html
Este comentario ha sido eliminado por el autor.
ResponderEliminarel boton de modificar no jala we
ResponderEliminarReemplaza el prepareCall() por prepareStatement()
Eliminarola....weee..estoy es muy interesante...pero yo deseo una aplicacion
ResponderEliminardonde se utilize ventanas para asi modificar, eliminar, consultar y guardar datos pero que estos datos esten guardados en archivos xml...te lo agradeceria mucho.....gracias.....
brother, me sale este error y no encuentro como solucionarlo
ResponderEliminar:c
the last packet sent successfully to the server was 0 milliseconds ago. The Driver has not received any packets from the server
Una pregunta alguien sabe como puedo implememntar el boton de Buscar?
ResponderEliminarLes agradecería mucho que me pudieran ayudar
no puedo modificar el di
ResponderEliminarMe dan muchos errores. el GetConnection no me aparece no sé porqué
ResponderEliminarpasa el codigo ya que no entiendo nada
ResponderEliminarEl código esta arriba del vídeo, copialo y pegalo ha
Eliminarmuy buen blog amigo, pero seria de mucha ayuda si subieras el proyecto en un .rar para descargar desde mega o mediafire gracias..
ResponderEliminarBueno, el código esta arriba del vídeo solo es cuestión de copiar y pegar
Eliminarparcero esta muy bueno pero no deja descargar el archivo
ResponderEliminarEsfuérzate y copia y pega el coligo esta arriba del video
Eliminarhola podrian ayudarme en el video segui todo y lo adapte a mi sistema pero no puedo utilizar el boton modificar este es el codigo de mi boton
ResponderEliminarJButton btnModificar = new JButton("Modificar");//CREANDO UN BOTON LLAMADO MODIFICAR
btnModificar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Programar boton Modificar
Connection con = null;
try {
con = getConnection();
//LA VARIABLE PS SERA IGUAL A LA VARIABLE CONEXION ACTUALIZANDO DE LA BASE DE DATOS DONDE EL IDE SEA EL QUE VAMOS A IMGRESAR
ps = (PreparedStatement) con.prepareStatement("UPDATE todos_los_productos SET Descripcion=?, Precio=?, Piezas=?, Stock=?");
ps.setInt(1 , Integer.parseInt(txtIDE.getText()));
ps.setString(2 , txtDescripcion.getText());
ps.setInt(3 , Integer.parseInt(txtPiezas.getText() ));
ps.setInt(4 , Integer.parseInt(txtPrecio.getText() ));
ps.setInt(5 , Integer.parseInt(txtStock.getText() ));
int res = ps.executeUpdate();
if (res <= 5){
JOptionPane.showMessageDialog(null, "Producto Modificado");
LimpiarCajas();
}//cierra if
else {
JOptionPane.showMessageDialog(null, "Error: Producto NO Modificado");
LimpiarCajas();
}// cuerra else
con.close();
} // cierra TRY
catch (Exception e2) {
System.err.println(e2);
}// cierra catch
}
});