Está en la página 1de 33

UNIVERSIDAD ABIERTA Y A DISTANCIA DE MÉXICO

ASIGNATURA:
Programación orientada a objetos II

Actividad 2 Programa de conexión

ALUMNO:

Angel Genaro Trujillo Marín


DOCENTE:
Alicia Guadalupe Robertos Pinto

MATRÍCULA:
ES1822024128

FECHA:
06 de Marzo del 2020

1
Introducción
Para esta actividad, vamos a trabajar con el proyecto de restaurante de las unidades pasadas,
sin embargo, para este punto vamos a crear las conexiones con la base de datos en mi caso con
MySQL con el gestor de WAMPServer, además de crear los campos para la tabla de inventarios
y una investigación sobre las sentencias DML y DDL.
Por otra parte vamos a generar la conexión desde netbeans con una clase conectar donde
integraremos la ruta para la conexión a nuestra base de datos, además que para poder realizar
las inserción de datos y consultas vamos a ocupar las sentencias DML y DDL que previamente
investigamos.

2
Índice
Índice ................................................................................................................................................. 3
Importancia de sentencia DML y DDL ...................................................................................... 4
Para que sirve SQL ........................................................................................................................ 4
Pasos para conectar una base datos en JAVA ...................................................................... 5
Diagrama de flujo inventarios ..................................................................................................... 9
Captura de pantalla inventarios ............................................................................................... 10
Evidencia de registros en base de datos inventarios ........................................................ 11
Registro en MySQL:..................................................................................................................... 12
Documentación de código ......................................................................................................... 13
Clase conectar que sirve para enlace a nuestra base de datos ...................................... 30
Conclusiones................................................................................................................................. 32
Bibliografía ..................................................................................................................................... 33

3
Para que sirve SQL
A lo largo de las asignaturas de la carrera, hemos aprendido que SQL es un lenguaje estándar
de acceso a base de datos relacional.
SQL nos sirve, para manipular e tener la integridad de la información representada por los datos
que se almacenan en las bases de datos, la venta de usar SQL es que está basada en cálculo
relacional o algebra relacional es por ello que este tiene soporte para bases de datos
relacionales. SQL en general nos ayuda como gestor de base de datos para un sistema que
estemos desarrollando.
Importancia de sentencia DML y DDL
Empezando con DDL (lenguaje de definición de datos en español) su importancia radica en que
es el que permite la definición de las estructuras que conforman las bases de datos, es decir con
este nos permite definir la estructura que almacenaran los datos, dentro de la sentencia de este
nos encontramos:
 CREATE que usamos para crear una base de datos (tablas, vistas, etc)
Un ejemplo es CREATE SCHEMA `tiendaDB`;.`productos`(
`llavePrimaria `INT NOT NULL,
`id_producto `VARCHAR(10) NULL,
`nombre `VARCHAR(10) NULL,
PRIMARY KEY (`llavePrimaria`));

 ALTER la utilizamos cuando necesitamos modificar una estructura, por ejemplo, añadir o
borrar columnas de una tabla.
 DROP por último con esta sentencia podemos eliminar los objetos de la estructura un
ejemplo es el índice.
Pasando con DML, este su importancia radica en que nos ayuda o nos permite a los usuarios,
introducir datos para posteriormente realizar tareas como consulta o modificación en la base de
datos. Es decir, son las sentencias que nos sirven para manipular los datos, dentro de este
apartado tenemos:
 SELECT nos sirve para realizar consultas sobre los datos que tenemos en la base.
 INSERT nos ayuda a insertar los valores en una base de datos
 UPDATE nos ayuda a modificar los valores de uno o varios registros
 DELETE se utiliza para eliminar las filas de una tabla

4
Pasos para conectar una base datos en JAVA
De acuerdo con el video de: Ingeniería de Sistemas. (2015). Como Conectar Java con Mysql -
Correctamente (Paso a Paso). 04-09-2019, de YouTube Sitio web:
https://www.youtube.com/watch?v=nbAYB6HyTQI

1- Primero que todo debemos descargar el archivo .jar conocido como MySQLConnector y
añadirlo a las librerías de nuestro proyecto; luego crearemos en nuestro proyecto, un paquete al
cual llamaremos "Métodos", y dentro de este, crearemos una clase la cual llamaremos
"ConexionMySQL".

2- Copia y pega el código resaltado en amarillo, después de la línea de código


"packageMetodos;" y sobre la línea de código "publicclassConexionMySQL {", este fragmento de
código se utiliza para importar las Clases y/o librerías necesarias para poder trabajar con ciertas
funcionalidades y métodos de nuestra Clase:

import java.sql.*;
import javax.swing.JOptionPane;

3- Ahora copia y pega el código resaltado en azul, dentro de la Clase


"publicclassConexionMySQL {}"; es decir, debe quedar rodeado por las llaves "{}" que limitan
dicha Clase.

4- La primera parte de este código resaltado en azul, consiste en crear 4 variables de tipo String
y con la propiedad public. En la primera variable llamada "db", guardamos el nombre de la Base
de datos a la cual nos queremos conectar; en la segunda variable url, guardaremos la ruta de
donde se encuentra ubicada nuestra Base de datos, si nos damos cuenta deberemos emplear la
api "jdbc:mysql" lo cual permite indicar que queremos conectar nuestra aplicación Java con una
Base de datos en MySQL, además debemos consignar la dirección de la máquina que contiene
la Base de datos, en este caso como trabajaremos en una sola máquina colocamos "localhost",
en el caso dado que trabajemos de forma remota debemos reemplazar este valor por la
dirección IP (ej. 192.168.1.2) de la máquina a la cual necesitamos conectarnos, en esta misma
variable concatenamos la variable que instanciamos al principio "+db"; luego la tercera y cuarta

5
variable "user" y "pass", corresponden al usuario y la clave para poder tener acceso a la Base de
datos.

public String db = "bdcontactos";


public String url = "jdbc:mysql://localhost/"+db;
publicStringuser = "root";
publicStringpass = "123"; //Si no se asigno contraseña se queda en blanco

5- Lo siguiente es un método, este contiene la propiedad "public", y devolverá un valor de tipo


"Connection", que en otras palabras sería la conexión con nuestra Base de datos; y se le ha
asignado a este método el nombre de "Conectar":

publicConnectionConectar(){}

6- Ahora instanciaremos un objeto de tipo "Connection", al cual asignaremos el valor "null". Esto
irá dentro del método del punto anterior:

Connection link = null;

7- Proseguiremos a crear un bloque "try-catch", debido a que el código que hemos de emplear
podría producir una excepción y/o error. Este bloque irá dentro del método mencionado en el
punto 5:

try{

}catch(Exception ex){

8- En esta línea de código lo que haremos será cargar la Clase "Driver", que se encuentra
ubicada dentro del ".jar" MySQLConnector que agregamos a nuestras librerías. Esta línea irá
dentro del "try{}" del punto anterior:

6
Class.forName("org.gjt.mm.mysql.Driver");

9- Ahora utilizando el método DriverManager.getConnection, y empleando las variables que


instanciamos al inicio de esta Clase, obtendremos la conexión con nuestra Base de datos, y
procederemos administrarla y almacenarla en el objeto tipo Connection instanciado al principio
del método "Conectar". Esta línea de código irá dentro del "try{}" del punto 7.

link = DriverManager.getConnection(this.url, this.user, this.pass);

10- En el caso dado de que ocurra un error al tratar de conectarnos con nuestra Base de datos,
procederemos a mostrar dicha excepción a través de una pequeña ventana, usando el
componente JOptionPane. Esta parte irá dentro del "catch(){}" del punto 7:

JOptionPane.showMessageDialog(null, ex);

11- Por último retornaremos la conexión obtenida, la cual podría ser exitosa o nula. Esta línea irá
por fuera del try-catch, pero dentro del método Conectar:

return link;

12- En cuanto al código para el test de conexión, copia y pega el código resaltado en verde,
dentro del evento y/o método del botón de un formulario de tu proyecto.

13- En las dos primeras líneas de código, lo que hacemos es instanciar un objeto de nuestra
Clase ConexionMySQL.java y luego en un objeto tipo Connection, administramos y/o
capturamos la conexión que se nos devuelve al llamar el método Conectar de nuestra Clase
mencionada anteriormente:

ConexionMySQLmysql = new ConexionMySQL();

java.sql.Connectioncn= mysql.Conectar();

7
14- En el resto de código, empleamos un condicional "if", en el cual verificamos que no se nos
devuelva una conexión nula, si se cumple esta condición, mostraremos una ventana
(JOptionPane) en la cual mostraremos el mensaje "Conectado"; luego dentro de un try-catch,
procedemos a cerrar la conexión con la Base de datos, y en dado caso de que ocurra una
excepción a la hora de realizar la desconexión, mostraremos dicho error por consola:

if(cn!=null){

JOptionPane.showMessageDialog(null, "Conectado");

try{

cn.close();

}catch(SQLException ex){

System.out.println("Error al desconectar "+ex);


}
}

8
15- Ahora sólo basta con ejecutar tu proyecto y hacer las respectivas pruebas
Diagrama de flujo inventarios

9
Captura de pantalla inventarios
En esta captura se crea la estructura de los campos con los label y textfield, demás se agrega
una tabla en donde se van a ir consultando los datos de nuestra base de datos en MySQL. Se
crean lo botones para capturar que es el que inserta los datos en nuestra base, limpiar para
limpiar los campos.

10
Evidencia de registros en base de datos inventarios
Se muestra como se hace el llenado de datos y con ello se registra en nuestra base de datos, se
generó un JOptionPane, para mostrar que se almaceno correctamente.

11
12
Se muestra como los datos se almacenaros en nuestra base datos y que lo podemos
visualizar desde el mismo programa sin necesidad de ir al localhost.
Registro en MySQL:

13
Documentación de código
Para esta actividad voy a colocar el código del proyecto de las clases con las que trabajamos
Inventarios JFrame:
package proyecto;

importclases.Conectar;
import java.awt.Color;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
*
* @author Ángel Genaro T.M
*/
public class Inventarios extends javax.swing.JFrame {

DefaultTableModel model = new DefaultTableModel();

/**
* Creates new form Inventarios
*/
publicInventarios() {

setLayout(null);
setTitle("Inventarios"); //se le da un título a la ventana

14
setIconImage(new ImageIcon(getClass().getResource("/imagenes/icon.png")).getImage());
initComponents();
limpiar();
bloquear();
cargar();

voidcargar() { //metodo cargar


String[] titulos = {"Clave_producto", "Sucursal", "Producto", "Cantidad", "Marca", "Proveedor"};
//se crean los nombres de las tabla
String[] registros = new String[6]; //se ocupan 6 registro para la tabla
String sql = "SELECT * FROM inventarios";

model = new DefaultTableModel(null, titulos); //

Conectar cc = new Conectar(); // se crea la conexión cuando guardamos los datos de la


tabla
Connection conn = cc.getConnection();
try {
Statement st = conn.createStatement();
ResultSetrs = st.executeQuery(sql);

while(rs.next()){
registros [0]=rs.getString("Clave_producto");
registros [1]=rs.getString("Sucursal");
registros [2]=rs.getString("Producto");
registros [3]=rs.getString("Cantidad");
registros [4]=rs.getString("Marca");
registros [5]=rs.getString("Proveedor");
model.addRow(registros);
}
t_datos.setModel(model);
} catch (SQLException ex) {

15
JOptionPane.showMessageDialog(null,ex);
}

voidlimpiar() { //metodo para limpiar los formularios


t_cproducto.setText("");
t_sucursal.setText("");
t_cantidad.setText("");
t_marca.setText("");
t_proveedor.setText("");
}

void bloquear() {
t_cproducto.setEnabled(false);
t_sucursal.setEnabled(false);
t_cantidad.setEnabled(false);
t_producto.setEnabled(false);
t_marca.setEnabled(false);
t_proveedor.setEnabled(false);
jButton2.setEnabled(false);
jButton3.setEnabled(false);
jButton4.setEnabled(false);
jButton5.setEnabled(false);
jButton6.setEnabled(true);
jButton7.setEnabled(true);

void desbloquear() {
t_cproducto.setEnabled(true);
t_sucursal.setEnabled(true);
t_cantidad.setEnabled(true);
t_producto.setEnabled(true);

16
t_marca.setEnabled(true);
t_proveedor.setEnabled(true);
jButton2.setEnabled(true);
jButton3.setEnabled(true);
jButton4.setEnabled(true);
jButton5.setEnabled(true);
jButton6.setEnabled(false);
jButton7.setEnabled(false);
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jButton1 = new javax.swing.JButton();


jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
t_cproducto = new javax.swing.JTextField();
t_sucursal = new javax.swing.JTextField();
t_producto = new javax.swing.JTextField();
t_cantidad = new javax.swing.JTextField();
t_marca = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
t_proveedor = new javax.swing.JTextField();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();

17
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
t_datos = new javax.swing.JTable();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem2 = new javax.swing.JMenuItem();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText("Regresar");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jButton1ActionPerformed(evt);
}
});

jLabel1.setText("Clave del producto");

jLabel2.setText("Sucursal");

jLabel3.setText("Producto");

jLabel4.setText("Cantidad");

jLabel5.setText("Marca");

t_cproducto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_cproductoActionPerformed(evt);

18
}
});

t_sucursal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_sucursalActionPerformed(evt);
}
});

t_producto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_productoActionPerformed(evt);
}
});

t_cantidad.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_cantidadActionPerformed(evt);
}
});

t_marca.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_marcaActionPerformed(evt);
}
});

jLabel6.setText("Proveedor");

t_proveedor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
t_proveedorActionPerformed(evt);
}
});

19
jButton2.setText("Capturar");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("Editar");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("Limpiar");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jButton4ActionPerformed(evt);
}
});

jButton5.setText("Seleccionar");

jButton6.setText("Nuevo");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jButton6ActionPerformed(evt);
}
});

jButton7.setText("Salir");
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {

20
jButton7ActionPerformed(evt);
}
});

t_datos.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{},
{},
{},
{}
},
new String [] {

}
));
jScrollPane1.setViewportView(t_datos);

jMenu1.setText("Menú");

jMenuItem1.setText("Salir");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);

jMenuBar1.add(jMenu1);

jMenu2.setText("Ayuda");

jMenuItem2.setText("Acerca de");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEventevt) {

21
jMenuItem2ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem2);

jMenuBar1.add(jMenu2);

setJMenuBar(jMenuBar1);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());


getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(15, 15, 15)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addGap(118, 118, 118)
.addComponent(jButton7))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(8, 8, 8)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(t_cantidad, javax.swing.GroupLayout.PREFERRED_SIZE, 211,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

22
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(65, 65, 65)
.addComponent(t_producto))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(68, 68, 68)
.addComponent(t_sucursal))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(t_cproducto, javax.swing.GroupLayout.PREFERRED_SIZE, 211,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addComponent(jButton6)
.addGap(121, 121, 121)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton3)
.addComponent(jButton2))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton4))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton5)
.addComponent(jLabel4)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel5))
.addGap(58, 58, 58)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(t_marca, javax.swing.GroupLayout.DEFAULT_SIZE, 211, Short.MAX_VALUE)
.addComponent(t_proveedor))))

23
.addGap(0, 0, Short.MAX_VALUE)))))
.addContainerGap(28, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(t_cproducto, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(t_sucursal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(22, 22, 22)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(t_producto, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(t_cantidad, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(t_marca, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

24
.addComponent(jLabel6)
.addComponent(t_proveedor, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton6)
.addComponent(jButton4)
.addComponent(jButton2))
.addGap(29, 29, 29)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton5)
.addComponent(jButton3))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 129,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton7)
.addComponent(jButton1))
.addContainerGap(29, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void jMenuItem1ActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
System.exit(0);
}

private void jButton1ActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
Principal W1 = new Principal(); //retorno de botonacceso principal
W1.setVisible(true);

25
dispose();
}

private void jMenuItem2ActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Este software a sido desarrollado por José Daniel
Navarrete Cordero");
}

private void t_cproductoActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
t_cproducto.transferFocus();
}

private void t_cantidadActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
t_cantidad.transferFocus();
}

private void jButton2ActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
Conectar cc = new Conectar(); // se crea la conexión cuando guardamos los datos de la tabla
Connectionconn = cc.getConnection();
Stringcproducto, sucursal, producto, cantidad, marca, proveedor; //variables provicionales para
cargar los datos digistados por cliente
Stringsql = ""; //variable para sentencia SQL
cproducto = t_cproducto.getText(); //datos ingresador por cliente
sucursal = t_sucursal.getText();
producto = t_cproducto.getText();
cantidad = t_cantidad.getText();
marca = t_marca.getText();
proveedor = t_proveedor.getText();
sql = "INSERT INTO inventarios (Clave_producto,Sucursal,Producto,Cantidad,Marca,Proveedor)
VALUES(?,?,?,?,?,?)"; //se asigna los datos a la tabla SQL

26
try { //se genera para evitar errores
PreparedStatementpst = conn.prepareStatement(sql);
pst.setString(1, cproducto);
pst.setString(2, sucursal);
pst.setString(3, producto);
pst.setString(4, cantidad);
pst.setString(5, marca);
pst.setString(6, proveedor);
int n = pst.executeUpdate(); //se aplica la actualización
if (n > 0) {
JOptionPane.showMessageDialog(null, "Se ha guardado exitosamente en BD");
}
} catch (SQLException ex) {
Logger.getLogger(Inventarios.class.getName()).log(Level.SEVERE, null, ex);
}

private void jButton4ActionPerformed(java.awt.event.ActionEventevt) {


// TODO addyourhandlingcodehere: limpieza de pantalla

t_cproducto.setText("");
t_sucursal.setText(""); //limpieza de pantalla
t_producto.setText("");
t_cantidad.setText("");
t_marca.setText("");
t_proveedor.setText("");
}

private void jButton6ActionPerformed(java.awt.event.ActionEventevt) {


desbloquear();
t_cproducto.requestFocus();
}

27
private void t_sucursalActionPerformed(java.awt.event.ActionEventevt) {
// TODO add your handling code here:
t_sucursal.transferFocus();
}

private void t_productoActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
t_producto.transferFocus();
}

private void t_marcaActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
t_marca.transferFocus();
}

private void t_proveedorActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
t_proveedor.transferFocus();
}

private void jButton7ActionPerformed(java.awt.event.ActionEventevt) {


// TODO addyourhandlingcodehere: //salir del sistema

System.exit(0);
}

private void jButton3ActionPerformed(java.awt.event.ActionEventevt) {


// TODO add your handling code here:
Binventarios W1 = new Binventarios(); //retorno de boton acceso principal
W1.setVisible(true);
dispose();

28
/**
* @paramargs the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Inventarios.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Inventarios.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Inventarios.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Inventarios.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {

29
public void run() {
new Inventarios().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextFieldt_cantidad;
private javax.swing.JTextFieldt_cproducto;
private javax.swing.JTablet_datos;
private javax.swing.JTextFieldt_marca;
private javax.swing.JTextFieldt_producto;
private javax.swing.JTextFieldt_proveedor;
private javax.swing.JTextFieldt_sucursal;
// End of variables declaration

30
}

Clase conectar que sirve para enlace a nuestra base de datos.

package clases;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
*
* @author José Daniel N.C
*/
publicclass Conectar { //metodo para conexión a la base de datos

private static Connection conn;


private static final String driver = "com.mysql.jdbc.Driver"; //uso del driver de sql
private static final String user = "root"; //usuario de SQL
private static final String password = ""; //contraseña de SQL
privatestatic final Stringurl = "jdbc:mysql://localhost:3306/tienda"; //se indica ruta de la
base de datos y nombre

public Conectar() {
conn = null;
try {
Class.forName(driver); // se esta llamando a la variable
conn = DriverManager.getConnection(url, user, password); //es la conexión a la base de
datos
if (conn != null) { //se crea condicional para verificar que nos hemos conectado a la base
de datos
JOptionPane.showMessageDialog(null, "Conexión establecida..:D");
}

31
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, "Error en la conexión" + e);
}
}

publicConnectiongetConnection() { //este metodo es para retonar la conexión


returnconn;
}

publicvoiddesconectar() { //metodo desconexión de la base de datos


conn = null;
if (conn == null) {
System.out.println("Conexión terminada");
}

Conclusiones
En lo personal esta actividad se me hizo demasiado interesantes pues, logré establecer una
conexión con una base de datos en este caso con MySQL, y con ello asegurar que los registros
que vaya ingresando se ingresen a una base donde no se perderán, aunque cierre el programa.
Tengo que decir que estoy muy contento con el avance en la actividad pues mi proyecto va
tomando forma, y esto es el principio para poder desarrollar programas más complejos, creo que
con la práctica podemos ir agregar nuevas funciones, eventos que hagan más estético al
programa.

32
Bibliografía
1.-Alvaro E. García. (2011). Manual práctico de SQL. 06-003-2020, de Amazon Sitio web:
https://s3.amazonaws.com/academia.edu.documents/38558216/ManualPracticoSQL.pdf?respon
se-content-disposition=inline%3B%20filename%3DManual_Prctico_de_SQL.pdf&X-Amz-
Algorithm=AWS4-HMAC-SHA256&X-Amz-
Credential=AKIAIWOWYYGZ2Y53UL3A%2F20190904%2Fus-east-
1%2Fs3%2Faws4_request&X-Amz-Date=20190904T213308Z&X-Amz-Expires=3600&X-Amz-
SignedHeaders=host&X-Amz-
Signature=ccf3ec945f637ebafaa47f00ad8691f0d38e968f4ff01d859933653319c8c9d6
2.-Carme Martín Escofet. (2018). El lenguaje SQL. 06-003-2020, de Google academico
(pdfcursos) Sitio web: https://pdfcursos.com/18-curso-lenguaje-sql.pdf
3.-Ricardo Morales. (2012). Netbeans Guardar datos a MySql Java Video 2. 06-003-2020, de
YouTube Sitio web: https://www.youtube.com/watch?v=hBewvo8KS6E
4.-Ricardo Morales. (2012). Netbeans Objeto Conectar a MySql Java Video 1. 06-003-2020, de
YouTube Sitio web: https://www.youtube.com/watch?v=ySzC78xloxY&t=356s

33

También podría gustarte