Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CREACIÓN DEL MODELO Java Parte2
CREACIÓN DEL MODELO Java Parte2
1. ENTORNO
2. INTRODUCCIÓN
3. CREANDO EL PROYECTO
3.1. Proyecto en Netbeans
Primero debemos de crear un proyecto web en Netbeans y para eso abriremos el Netbeans y
buscaremos el menu File y luego New Project. Y seleccionaremos que deseamos crear un
proyecto del tipo Web Application
Para explicar la estructura que vamos a tener del proyecto, les presento el siguiente gráfico que
nos indicara como se distribuirá el Modelo, el Controlador y la Vista
4. DESARROLLO
4.1. Creando el Paquete
Primero debemos de crear nuestro paquete que se llamara Modelo. En el gráfico se explica como
crear el paquete
Y al paquete lo llamaremos Modelo
Para crear los JavaBeans debemos de crear las clases que tendran la misma estructura de las
tablas de nuestra base de datos, eso quiere decir que si por ejemplo en alguna tabla de nuestra
base de datos tenemos una columna del tipo Varchar en Java tendriamos una variable del tipo
String, si tenemos un variable del tipo Decimal en Java seria double. Para eso hacemos clic
derecho en nuestro paquete que se llama Modelo, de ahi nos vamos a New y seleccionamos Java
Class
4.2.1. Clase Producto
La clase Producto tiene la misma estructura de nuestra tabla Producto de nuestra base de datos,
a continuación les comparto el código fuente de la clase.
package Modelo;
La clase Venta tiene la misma estructura de nuestra tabla Venta de nuestra base de datos,
a continuación les comparto el código fuente de la clase.
package Modelo;
// @author hwong
import java.sql.Timestamp;
public Venta() {
}
//Constructor de la clase con parametros
package Modelo;
// @author hwong
public class DetalleVenta {
//Las columnas que tiene la tabla DetalleVenta
Al finalizar de crear las clases deberiamos tener 3 clases tal como se muestra en el grafico
siguiente
4.3. Creando las clases para comunicar con la base de datos
Para poder comunicar nuestro proyecto con MySQL 5.6. primero debemos de adicionar el driver a
nuestro proyecto. Para eso hacemos clic derecho en nuestro proyecto y nos vamos a la opción que
dice Properties y seleccionamos de ahí Libraries y presionamos el botón que dice Add Library y
buscamos el que dice MySQL JDBC Driver
NOTA: en caso de no funcionar esta librería por lo obsoleto de la misma habrá que descargar otra
librería y añadir el .jar directamente en la librería del proyecto
Esta clase es la que centraliza la conexión con nuestra base de datos que esta en MySQL nos va
dar soporte para ciertos métodos que vamos a usar en nuestras demás clases
package Modelo;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
package Modelo;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
Sirve para insertar un detalle de la venta, el metodo insertarDetalle espera obtener la conexion y la
transaccion de la clase Venta. Debido a que esta ultima clase es la que inicia la transaccion con la
base de datos y es la única encargada de confirmar o negar la transaccion
package Modelo;
// Archivo: DetalleVentaBD.java
// Creado: 24FEBRERO2011 12:39:08 PM
public class DetalleVentaBD {
package Modelo;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
Connection cn = null;
CallableStatement cl = null;
boolean rpta = false;
try {
//Nombre del procedimiento almacenado y como espera tres
parametros
//le ponemos 3 interrogantes
String call = "{CALL spI_venta(?,?)}";
//Obtenemos la conexion
cn = Conexion.getConexion();
//Decimos que vamos a crear una transaccion
cn.setAutoCommit(false);
//Preparamos la sentecia
cl = cn.prepareCall(call);
//Como el codigo se autogenera y es del tipo OUT en el
procedimiento
//almacenado le decimos que es OUT y el del tipo Integer en
Java
cl.registerOutParameter(1, Types.INTEGER);
//El siguiente parametro del procedimiento almacenado es el
cliente
cl.setString(2, varventa.getCliente());
//Ejecutamos la sentencia y si nos devuelve el valor de 1 es
porque
//registro de forma correcta los datos
rpta = cl.executeUpdate() == 1 ? true : false;
//Codigo que se genero producto de la insercion --->
codigoVenta
varventa.setCodigoVenta(cl.getInt(1));
if (rpta) {
for (DetalleVenta det : detalle) {
//Establecemos al detalle el codigo genero producto
de la venta
det.setCodigoVenta(varventa.getCodigoVenta());
//Insertamos el detalle y le pasamos la conexion
rpta = DetalleVentaBD.insertarDetalleVenta(det, cn);
//Si nos devuelve false salimos del for
if (!rpta) {
break;
}
}
if (rpta) {
//Confirmamos la transaccion
cn.commit();
} else {
//Negamos la transaccion
Conexion.deshacerCambios(cn);
}
} else {
//Negamos la transaccion
Conexion.deshacerCambios(cn);
}
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (SQLException e) {
e.printStackTrace();
Conexion.deshacerCambios(cn);
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
} catch (Exception e) {
e.printStackTrace();
Conexion.deshacerCambios(cn);
Conexion.cerrarCall(cl);
Conexion.cerrarConexion(cn);
}
return rpta;
}