Laboratorio #5-Sesion 9

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 19

Programación Visual

LABORATORIO SEMANA 5_1


SESION 09
Logros:
Al término del laboratorio el alumno estará en capacidad de lograr:

- Crear un proyecto Java escritorio


- Trabajar con base de datos en Mysql
- Trabajar con POO
- Implementar con las clases de JDBC para realizar CRUD (Mantenimiento a una tabla)

Laboratorio : MANTENIMIENTO A LA TABLA AGENDA BD EJEMPLO

Recordemos en la sesión anterior creo la siguiente bd


1. Mysql la base de datos ejemplo con la tabla agenda que contenga estos campos

2. Crear en java el proyecto Laboratorio_4_2


3. Crear la clase conexión y el paquete dao

Agregar código para la conexión


public static Connection conectar() {
Connection con=null;
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/ejemplo","root","");
JOptionPane.showMessageDialog(null, "conexion ok");
return con
}
4. Asi mismo creo en el paquete dao la clase Agenda y agregar los siguientes métodos

1
Programación Visual

public
int

actualiza( String nom,Integer cod) throws


ClassNotFoundException, SQLException {
String sql = "update agenda set nombre=? where codigo=?";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setString(1, nom);
pst.setInt(2, cod);
int c = pst.executeUpdate();
pst.close();
cn.close();
return c;
}
public int elimina(Integer cod) throws
ClassNotFoundException, SQLException {
String sql = "delete from agenda where codigo=?";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
2
Programación Visual

pst.setInt(1, cod);
int c = pst.executeUpdate();
pst.close();
cn.close();
return c;
}
FORMULARIO JInternalFrame
Esta vez crearemos un JInternalFrame con nombre CrudAgenda

3
Programación Visual

Boton inserta

Agenda obj = new Agenda();


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

try {

int codigo = Integer.parseInt(txtcodigo.getText());


String nombre = txtnombre.getText();
obj.inserta(codigo, nombre);
JOptionPane.showMessageDialog(null, "se inserto exitosamente");

tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
}

}
Botó actualizar

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {


try {

int codigo = Integer.parseInt(txtcodigo.getText());


String nombre = txtnombre.getText();
obj.actualiza(nombre,codigo);
JOptionPane.showMessageDialog(null, "se actualizo exitosamente");

tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
}
}
Botón Eliminar

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {


try {
int codigo = Integer.parseInt(txtcodigo.getText());
obj.elimina(codigo);
JOptionPane.showMessageDialog(null, "se elimino exitosamente");

tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
}
Buscar
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
int id = Integer.parseInt(txtcodigo.getText().trim());
4
Programación Visual

ResultSet rs = obj.buscar(id);
rs.next();
txtnombre.setText(rs.getString(2));
} catch (SQLException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(CrudAgenda.class.getName()).log(Level.SEVERE, null, ex);
}

}
}
Mdi :Principal
Agregar el menú mantenimiento

private CrudAgenda v4;


private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
if (v4 == null || v4.isClosed()) {
try {
//2 crear un objeto de la ventana a abrir ventana_1
v4=new CrudAgenda();
this.add(v4);
v4.setVisible(true);
} catch (SQLException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

LABORATORIO MANTENIMIENTO A TABLA PRODUCTOS BD VENTAS


Base de datos Ventas, tabla PRODUCTOS

5
Programación Visual

Creación de proyecto y clases principales

Conexion.java
package servicios;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Conexion {
public static Connection conectar() throws ClassNotFoundException{
Connection con=null;

try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Ventas","root","");

} catch (SQLException ex) {


Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
return con;
}
}

ProductosService.java
package servicios;
import java.sql.*;
import static servicios.Conexion.conectar;

public class ProductosService {

6
Programación Visual

public ResultSet listaProducto()throws SQLException, {


String sql = "select * from productos";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
return rs;

public ResultSet buscar(String p) throws SQLException, {


String sql = "select * from productos where descripcion=?";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setString(1, p);
ResultSet rs = pst.executeQuery();
return rs;

public int insertaProducto(Integer cod, String des, Double pre ) throws


{
String sql = "insert into PRODUCTOS (COD,DESCRIPCION,PRECIO)"
+ " VALUES(?,?,?)";
Connection cn = Conexion.conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setInt(1, cod);
pst.setString(2, des);
pst.setDouble(3, pre);
int c=pst.executeUpdate();
pst.close();
cn.close();
return c;
}
public int eliminaProducto(Integer cod )
throws ClassNotFoundException, SQLException {
String sql = "delete from PRODUCTOS where COD=?";
Connection cn = Conexion.conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setInt(1, cod);
int c=pst.executeUpdate();
pst.close();
7
Programación Visual

cn.close();
return c;
}
public int actualizaProducto(int cod, String des, double precio )
throws ClassNotFoundException, SQLException {
String sql = "update PRODUCTOS set descripcion=?, precio=? where cod=?";
Connection cn = Conexion.conectar();
PreparedStatement pst = cn.prepareStatement(sql);

pst.setString(1, des);
pst.setDouble(2, precio);
pst.setInt(3, cod);
int c=pst.executeUpdate();
pst.close();
cn.close();
return c;
}

public ResultSet buscaProducto(int cod) throws {


String sql = "select * from PRODUCTOS where COD=?";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setInt(1, cod);
ResultSet rs = pst.executeQuery();
return rs;
}
}

Jframe: Vistaventas

8
Programación Visual

public class Vistaventas extends javax.swing.JFrame {

int id;
DefaultTableModel model = new DefaultTableModel();

void cargarproductos() throws SQLException, ClassNotFoundException {


Connection conn = null;
String sql = null;
ProductosService obj = new ProductosService();
ResultSet rs = obj.listaProducto();
cboproducto.removeAllItems();
cboproducto.addItem("Seleccione un producto");
while (rs.next()) {
cboproducto.addItem(String.valueOf(rs.getString(2)));
}
}
private void cboproductoActionPerformed(java.awt.event.ActionEvent evt) {
String pro = cboproducto.getSelectedItem().toString();
ResultSet rs = null;
ProductosService servicio = new ProductosService();

try {
rs = servicio.buscar(pro);
while (rs.next()) {
9
Programación Visual

txtprecio.setText(String.valueOf(rs.getDouble(3)));
}
} catch (Exception ex) {
System.out.println("error: " + ex.toString());
}
}
public Double total;
public Vistaventas() throws SQLException, ClassNotFoundException {
initComponents();
this.getContentPane().setBackground(Color.WHITE);
cargarproductos();
tblProductos.setModel(model);
String titu[] = {"Producto", "Precio_Uni", "Cantidad", "Importe"};
model.setColumnIdentifiers(titu);
tblProductos.getColumnModel().getColumn(0).setPreferredWidth(200);
}
public Double total;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String rowData[] = new String[4];
rowData[0] = cboproducto.getSelectedItem().toString();
rowData[1] = txtprecio.getText();
rowData[2] = spncantidad.getValue().toString();
Double imp = Double.parseDouble(rowData[1]) * Double.parseDouble(rowData[2]);
rowData[3] = imp.toString();
model.addRow(rowData);
total = imp + Double.parseDouble(lbltotal.getText());
lbltotal.setText(String.valueOf(total.toString()));
}

Mantenimiento de Productos

10
Programación Visual

public class frmProductos extends javax.swing.JFrame {


DefaultTableModel modelo = new DefaultTableModel();
private void limpiar() {
while (modelo.getRowCount() > 0) {
modelo.removeRow(0);
}
}

private void tabla() throws SQLException, ClassNotFoundException {


ProductosService obj = new ProductosService();
limpiar();
try ( ResultSet rs = obj.listaProducto()) {
while (rs.next()) {
Object[] ob = new Object[3];
ob[0] = rs.getInt(1);
ob[1] = rs.getString(2);
ob[2] = rs.getDouble(3);
modelo.addRow(ob);
ob = null;
}
}
}

public frmProductos() throws SQLException, ClassNotFoundException {


initComponents();
this.getContentPane().setBackground(Color.WHITE);
setLocationRelativeTo(null);
11
Programación Visual

tblproductos.setModel(modelo);
modelo.addColumn("codigo");
modelo.addColumn("precio");
modelo.addColumn("descripcion");
tabla();
}

ProductosService obj = new ProductosService();


Insertar
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
// inserta productos en la seccion de declaraciones al inicio cree un objeto de la clase servicios
int codigo = Integer.parseInt(txtcodigo.getText());
String descripcion = String.valueOf(txtdescripcion.getText());
Double precio = Double.parseDouble(spnprecio.getValue().toString());
obj.insertaProducto(codigo, descripcion, precio);
JOptionPane.showMessageDialog(null, "se inserto exitosamente");

tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
}
}

Actualizar
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
try {
int codigo = Integer.parseInt(txtcodigo.getText());
String descripcion = String.valueOf(txtdescripcion.getText());
Double precio = Double.parseDouble(spnprecio.getValue().toString());
obj.actualizaProducto(codigo, descripcion, precio);
JOptionPane.showMessageDialog(null, "se Actualizo exitosamente");
tabla();

} catch (ClassNotFoundException ex) {


Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
12
Programación Visual

}
}
ELIMINAR
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
try {
int codigo = Integer.parseInt(txtcodigo.getText());
obj.eliminaProducto(codigo);
JOptionPane.showMessageDialog(null, "se Elimino exitosamente");
tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
}
}
BUSCAR
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
try {
ProductosService obj = new ProductosService();
int id = Integer.parseInt(txtcodigo.getText().trim());
ResultSet rs = obj.buscaProducto(id);
rs.next();
txtdescripcion.setText(String.valueOf(rs.getString(2)));
spnprecio.setValue(rs.getDouble(3));
} catch (ClassNotFoundException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(frmProductos.class.getName()).log(Level.SEVERE, null, ex);
}
}
Laboratorio 03 MANTENIMITO A TABLA ALUMNOS BD UNIVERSIDAD

La Universidad Nuevo Horizontes, requiere implementar un registro automático de las notas de sus estudiantes,
considerando el ciclo, curso y notas finales por el memento 2 una de teoría y otra de laboratorio.

Base de datos : UNIVERSIDAD


Tablas : ALUMNOS, NOTAS

13
Programación Visual

Proyecto

Código.
Conexión
package servicios;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Conexion {


public static Connection conectar() throws ClassNotFoundException{
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/universidad","root","");
} catch (SQLException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE, null, ex);
}
return con;
}
}
Alumno.java
package servicios;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
14
Programación Visual

import static servicios.Conexion.conectar;

public class Alumno {


public ResultSet listaAlumnos()throws SQLException, {
String sql = "select * from alumno";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
return rs;

public ResultSet buscar(int cod) throws SQLException, {


String sql = "select * from alumno where codigo=?";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setInt(1, cod);
ResultSet rs = pst.executeQuery();
return rs;
}
}

Notas.java
package servicios;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import static servicios.Conexion.conectar;

public class Notas {


public ResultSet listanotas()throws SQLException, ClassNotFoundException {
String sql = "select * from notas";
Connection cn = conectar();
PreparedStatement pst = cn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
return rs;
}
public int registrar(Integer cod, String curso, Double prom ) throws ClassNotFoundException,
SQLException
{
String sql = "insert into notas (codigo,curso,promedio)"
+ " VALUES(?,?,?)";
int c;
15
Programación Visual

try (Connection cn = Conexion.conectar()) {


PreparedStatement pst = cn.prepareStatement(sql);
pst.setInt(1, cod);
pst.setString(2, curso);
pst.setDouble(3, prom);
c = pst.executeUpdate();
pst.close();
}
return c;
}
}
JFRAME BOLETA

public class boleta extends javax.swing.JFrame {


DefaultTableModel modelo = new DefaultTableModel();
private void limpiar() {
while (modelo.getRowCount() > 0) {
modelo.removeRow(0);
}
}
private void tabla() throws SQLException, ClassNotFoundException {
Notas obj = new Notas();
limpiar();
try ( ResultSet rs = obj.listanotas()) {
while (rs.next()) {

16
Programación Visual

Object[] ob = new Object[3];


ob[0] = rs.getInt(1);
ob[1] = rs.getString(2);
ob[2] = rs.getDouble(3);
modelo.addRow(ob);
ob = null;
}
}
}
void cargarcombo() throws SQLException, ClassNotFoundException {
Connection conn = null;
String sql = null;
Alumno obj = new Alumno();
ResultSet rs = obj.listaAlumnos();
cbocodigo.removeAllItems();
cbocodigo.addItem("0");
while (rs.next()) {
cbocodigo.addItem(String.valueOf(rs.getInt(1)));
}
}

public boleta() throws SQLException, ClassNotFoundException {


initComponents();
this.getContentPane().setBackground(Color.WHITE);
setLocationRelativeTo(null);
cargarcombo();
tblnotas.setModel(modelo);
String titu[] = {"Codigo", "Curso", "Promedio"};
modelo.setColumnIdentifiers(titu);
tblnotas.getColumnModel().getColumn(0).setPreferredWidth(200);
tabla();
}
Botón Registrar
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
int codigo = Integer.parseInt(cbocodigo.getSelectedItem().toString());
String curso = String.valueOf(txtasignatura.getText());
Double n1, n2, prom;
n1 = Double.parseDouble(spnnota1.getValue().toString());
n2 = Double.parseDouble(spnnota2.getValue().toString());
prom = (n1 + n2) / 2;
Notas objn=new Notas();
objn.registrar(codigo, curso, prom);
JOptionPane.showMessageDialog(null, "Notas Ingresadas exitosamente");
17
Programación Visual

tabla();
} catch (ClassNotFoundException ex) {
Logger.getLogger(boleta.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(boleta.class.getName()).log(Level.SEVERE, null, ex);
} }
Password

Agregar un jframe para esta ventana y para desactivar los botones de la ventana cambiar la propiedad "undecorated" y
activamos la casilla que se encuentra allí

Código:

1. Agregar en el paquete dao la clase Usuario con el siguiente método


package dao;
import static dao.Conexion.conexionJDB;
import java.sql.*;
public class Usuario {
public ResultSet buscaUser(String u,String p) throws ClassNotFoundException, SQLException {
String sql = "select * from usuario where user=? and password=?";
Connection cn = conexionJDB();
PreparedStatement pst = cn.prepareStatement(sql);
pst.setString(1, u);
pst.setString(2, p);
ResultSet rs = pst.executeQuery();
return rs;
}
}
2. Agregar el siguiente código en el botón aceptar de la ventana
try {
Usuario obj = new Usuario();
String pwd = new String(txtpassword.getPassword());
ResultSet rs = obj.buscaUser(txtusuario.getText(), pwd);
if (rs.next()) {
JOptionPane.showMessageDialog(null, "Bienvenido");
this.dispose();
MDI m = new MDI();
m.setVisible(true);

} else {
JOptionPane.showMessageDialog(null, "Credenciales incorrectas");
18
Programación Visual

}
}

“El éxito es la suma de pequeños esfuerzos repetidos día tras día”

19

También podría gustarte