Primero creamos nuestro formulario
<!DOCTYPE html>
<html>
<head>
<title>Almacen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form name="almacen" id="almacen" action="index.jsp" method="post">
<table border="1" cellspacing="2" cellpadding="0">
<thead>
<tr>
<td>
Dato
</td>
<td>
Información
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
Nombre del Producto
</td>
<td>
<input type="text" name="producto" id="producto"/>
</td>
</tr>
<tr>
<td>
Precio
</td>
<td>
<input type="text" name="precio" id="precio"/>
</td>
</tr>
<tr>
<td>
Cantidad
</td>
<td>
<select name="cantidad">
<option value="5.5">5.5 Kilos</option>
<option value="10.5">10.5 Kilos</option>
<option value="15.5">15.5 Kilos</option>
</select>
</td>
</tr>
<tr>
<td>
Fecha
</td>
<td>
<input type="date" name="fecha" id="fecha"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="guardar" value="Guardar"/>
</td>
</tr>
</tbody>
</table>
</form>
<div>TODO write content</div>
</body>
</html>
por esta ocasión no aplicaremos validación ni estilo el tutorial pasado lo vimos así que podemos dar el estilo que mas nos agrade. (para validar con el archivo .js y para estilo con el .css).
Ahora creamos nuestra clase java
package operacionesAlmacen;
import java.text.SimpleDateFormat;
import java.util.Date;
public class almacen
{
private String producto,fechaAux;
private int precio;
private double cantidad,total;
private Date fecha;
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
public almacen() {
}
public String getProducto() {
return producto;
}
public void setProducto(String producto) {
this.producto = producto;
}
public String getFechaAux() {
return fechaAux;
}
public void setFechaAux(String fechaAux) {
this.fechaAux = fechaAux;
}
public int getPrecio() {
return precio;
}
public void setPrecio(int precio) {
this.precio = precio;
}
public double getCantidad() {
return cantidad;
}
public void setCantidad(double cantidad) {
this.cantidad = cantidad;
}
public Date getFecha() {
return fecha;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}
public double getTotal() {
return total;
}
public void setTotal(double total) {
this.total = total;
}
public void Total()
{
setTotal(precio*cantidad);
try{
setFecha(f.parse(fechaAux));
}
catch(Exception e){
}
}
}
esta clase recibirá los valores de html los cuales serán enviados por un archivo .jsp
Creamos nuestra conexión BD
package operacionesAlmacen;
//Se impota la libreria de SQL
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
//import com.mysql.jdbc.*;
public class Bd {
//Se declaran las variales
Connection conn; //Variable conn de tipo Connection. Nos sirve para establecer la conexion.
Statement smt; //Variable smt de tipo Statement. Nos sirve para ejecutar sentencias sql
ResultSet rs=null; //Variable rs de tipo ResultSet. Nos sirve para almacenar el resultado de una consulta SQL
String mensaje="";// Variable para desplegar mensajes.
/*Ahora realizamos un metodo para conectarse a la base de Datos
para conestarse a una base de datos se necesitan tres cosas
1.-El nombre de la base de datos 2.- usuario 3.- pasdword
El throws nos sirve para que el error no lo maneje el metodo el SQLException es solo para que se encarge de los errores de sintaxis SQL*/
public Bd(String bd, String user, String password)
{
// Bd recibe el nombre de la base de datos
// user recibe el nombre del usuario
// password recibe la contraseña del usuario
String url="jdbc:mysql://localhost/"+bd;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url,user,password); // abre la conexion y se guarda en conn
smt=conn.createStatement(); //smt queda preparada para realizar ejecutar sentencias sql
mensaje= "Coneccion realizada correctamente a la base de datos :"+url;
//System.out.println(mensaje);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Bd.class.getName()).log(Level.SEVERE, null, ex);
}
catch(SQLException e){
mensaje="Error al conectar a la base de datos \nError:"+e;
//System.out.println(mensaje);
}
}
public String desconectarBd(){
String texto;
try{
conn.close();
texto="BD desconectada exitosamente";
}
catch(Exception e){
texto="Error al desconectar la BD";
}
return texto;
}
public ResultSet consultaBd(String sql){
try {
rs=smt.executeQuery(sql);
mensaje="consulta ejecutada correctamente";
}
catch(Exception e){
mensaje="Error en la consulta a la tabla de la BD "+e+" sql "+sql;
}
return rs;
}
public String actualizaBd(String sql){
String texto;
try{
smt.executeUpdate(sql);
texto="Actualización correcta";
}
catch(Exception e){
texto="Error al ejecutar la actualización "+e+" sql "+sql;
}
return texto;
}
}
esto realizara la conexión entre la aplicación web y la base de datos.
Para esto debemos tener una Base de Datos
crearemos una pequeña base el siguiente comando copias y pegas todo tal como esta.
create database almacen;
use almacen;
create table Datos(id int unsigned auto_increment primary key,
Producto char(15),
Precio int,
Cantidad double,
Fecha date,
Total double
);
con esto crearemos una base llamada almacén con una tabla llamada Datos y unos campos llamados
id, Producto, Precio, Cantidad, Fecha Total.
Creamos una clase java la cual ejecutara las sentencias sql
package operacionesAlmacen;
public class operacionesBd
{
almacen a;
String sql;
Bd bd=new Bd("almacen","root","utsjr");/*almacen es el nombre de mi base de datos root es el administrador y utsjr es la contraseña*/
public operacionesBd(almacen a) {
this.a = a;
}
public void insertarNuevosProductos()throws Exception
{
sql="insert into datos (Producto,Precio,Cantidad,Fecha,Total)"
+ "values ('"+a.getProducto()+"',"+a.getPrecio()+","+a.getCantidad()+",'"+a.getFechaAux()+"',"+a.getTotal()+")";
System.out.println("sql"+sql);
bd.actualizaBd(sql);
}
}
Después creamos el .jsp que sera nuestra pagina dinámica y nos ayudara a pasar los datos de .html a .java
<%@page import="operacionesAlmacen.almacen"%>
<%@page import="operacionesAlmacen.operacionesBd"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Almacen</title>
</head>
<body>
<%
almacen a=new almacen();
a.setProducto(request.getParameter("producto"));
a.setPrecio(Integer.parseInt(request.getParameter("precio")));
a.setFechaAux(request.getParameter("fecha"));
a.setCantidad(Double.parseDouble(request.getParameter("cantidad")));
a.Total();
operacionesBd obd=new operacionesBd(a);
obd.insertarNuevosProductos();
%>
<table border="1" cellspacing="2" cellpadding="0">
<thead>
<tr>
<td>
Dato
</td>
<td>
Información
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
Nombre del Producto
</td>
<td>
<% out.print(a.getProducto()); %>
</td>
</tr>
<tr>
<td>
Precio
</td>
<td>
<% out.print(a.getPrecio()); %>
</td>
</tr>
<tr>
<td>
Cantidad
</td>
<td>
<% out.print(a.getCantidad()); %>
</td>
</tr>
<tr>
<td>
Fecha
</td>
<td>
<% out.print(a.getFecha());
%>
</td>
</tr>
</tbody>
</table>
</body>
</html>
aquí importamos todas las clases de java ahora podemos ejecutar el programa y analizar como funciona dudas o aclaraciones gto.aje.2@hotmail.com