conexión base de datos con jdbc
TRANSCRIPT
Conexión Base de datos con JDBC
1. Configuración del servidor de aplicaciones para utilización driver J/Connector MySQL
a. Descargar Driver de pagina de descarga de MySQL, creo que ya lo deben haber descargado
b. Copiar mysql-connector-java-5.1.17-bin.jar a carpeta LIB en la siguiente Ruta: C:\jboss-5.0.1.GA\server\default\lib
2. Crear base de datos y Tabla a utilizar.
CREATE database ejemplodb;
CREATE TABLE `persona` (
`idpersona` int(11) NOT NULL AUTO_INCREMENT,
`rut` varchar(45) DEFAULT NULL,
`nombre` varchar(45) DEFAULT NULL,
`apellido` varchar(45) DEFAULT NULL,
`direccion` varchar(45) DEFAULT NULL,
PRIMARY KEY (`idpersona`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1$$
INSERT INTO `ejemplodb`.`persona` ( `rut`, `nombre`, `apellido`, `direccion`) VALUES ( '12322144-8', 'juan', 'perez', 'puerto montt');
INSERT INTO `ejemplodb`.`persona` ( `rut`, `nombre`, `apellido`, `direccion`) VALUES ( '13654752-8', 'armando', 'casas', 'puerto montt');
INSERT INTO `ejemplodb`.`persona` ( `rut`, `nombre`, `apellido`, `direccion`) VALUES ( '142365478-9', 'Pedro', 'Almonacid', 'puerto montt');
INSERT INTO `ejemplodb`.`persona` ( `rut`, `nombre`, `apellido`, `direccion`) VALUES ( '18456321-8', 'Juan', 'Bahamondes', 'puerto mont');
3. Crear TO para generar una consulta de persona por Rut
package com.ingreso.negocio.to;
import java.io.Serializable;
public class DatosParaConsultarPersonaTO implements Serializable {
private String rut;
public void setRut(String rut) {this.rut = rut;
}
public String getRut() {return rut;
}
}
4. Declarar variables globales de conexión en el DAO, se deben declarar en el DAO que se va a utilizar…..
private static String urlConnection="jdbc:mysql://localhost:3309/ejemplodb";
private static String user="root";private static String pwd="root";
5. Crear método para consultar todos los registros de la tabla en el DAO.
public List<PersonaTO> getTodasLasPersonas() {
PersonaTO personaTO;List arregloPersonas = new ArrayList();
System.out.println("Select");Connection con = null;int count = 0;try {
Class.forName("com.mysql.jdbc.Driver");con =
DriverManager.getConnection(urlConnection,user,pwd);
try {String sql = "SELECT rut,nombre,apellido,direccion
FROM persona";PreparedStatement prest =
con.prepareStatement(sql);ResultSet rs = prest.executeQuery();System.out.println("Se ejecuto consulta!");int rowcount = 0;if (rs.last()) {
rowcount = rs.getRow();rs.beforeFirst(); // not rs.first() because
the rs.next()// below will
move on, missing the first// element
}System.out.println("Cantidad Registros !" +
rowcount);
while (rs.next()) {
System.out.println("Se leera dato!");personaTO = new PersonaTO();
personaTO.setFirstName(rs.getString(2));personaTO.setLastName(rs.getString(3));personaTO.setGender("hombre");
personaTO.setResidency(rs.getString("direccion"));System.out.println("TO poblado" +
personaTO);System.out.println("Se agregara dato!");System.out.println("Arrreglo instanciado "
+ arregloPersonas);
arregloPersonas.add(personaTO);count++;
}
System.out.println("Number of records: " + count);prest.close();con.close();
return arregloPersonas;} catch (SQLException s) {
System.out.println("SQL statement is not executed!");
return null;}
} catch (Exception e) {e.printStackTrace();return null;
}
}
6. Crear método para consultar una persona por Rut, en el DAO.
public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO) {
PersonaTO personaTO= new PersonaTO();System.out
.println("Select por Rut");Connection con = null;int count = 0;try {
Class.forName("com.mysql.jdbc.Driver");con =
DriverManager.getConnection(urlConnection,user,pwd);try {
String sql = "SELECT rut,nombre,apellido,direccion FROM persona WHERE rut = ? ";
PreparedStatement prest = con.prepareStatement(sql);
//Coloco el RUT en el primer parametros de entrada
prest.setString(1,datosParaConsultarPersonaTO.getRut());
ResultSet rs = prest.executeQuery();while (rs.next()) {
System.out.println("Se leera .dato!");personaTO = new PersonaTO();
personaTO.setFirstName(rs.getString(2));personaTO.setLastName(rs.getString(3));personaTO.setGender("hombre");
personaTO.setResidency(rs.getString("direccion"));System.out.println("TO poblado" +
personaTO);
}System.out.println("Number of records: " + count);prest.close();con.close();return personaTO;
} catch (SQLException s) {System.out.println("SQL statement is not
executed!");return null;
}} catch (Exception e) {
e.printStackTrace();return null;
}}
7. Crear métodos en la Interface del DAO. (cada DAO tiene su interfaz)
public List<PersonaTO> getTodasLasPersonas();public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO);
8. Crear métodos en el BO y registrar imports (para que se reconozcan las clases).
import java.util.ArrayList;import java.util.Iterator;import java.util.List;
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
public List<PersonaTO> getTodasLasPersonas() {
ICarsDAO iCarsDAO;iCarsDAO =DAOFactory.getInstance().getCarsDAO();IPersonDAO iPersonDAO;iPersonDAO=DAOFactory.getInstance().getPersonDAO();PersonaTO personaTO = new PersonaTO();int count =0;List personasResultado = new ArrayList();
List personas =iPersonDAO.getTodasLasPersonas();
Iterator iter = personas.iterator();
while (iter.hasNext()) {personaTO = new PersonaTO();personaTO = (PersonaTO) iter.next();System.out.println("Persona Rescatada BO: " +
personaTO);personaTO.setCarModels( iCarsDAO.getCarsModels());System.out.println("Persona a Guardar BO: " +
personaTO);personasResultado.add(personaTO);
}return personasResultado;
}
public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO){
person= new PersonaTO();ICarsDAO iCarsDAO;iCarsDAO =DAOFactory.getInstance().getCarsDAO();
IPersonDAO iPersonDAO;iPersonDAO=DAOFactory.getInstance().getPersonDAO();
person=iPersonDAO.getPersonaPorRut(datosParaConsultarPersonaTO);person.setCarModels( iCarsDAO.getCarsModels());return person;
}
9. Crear métodos en el EJB.
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
public List<PersonaTO> getTodasLasPersonas() { return IngresoBO.getInstance().getTodasLasPersonas();
}
public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO) {
return IngresoBO.getInstance().getPersonaPorRut(datosParaConsultarPersonaTO);
}
10.Crear métodos en la interface local y remota
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
public List<PersonaTO> getTodasLasPersonas();public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO);
11.Crear métodos en el BusinessDelegate
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
public List<PersonaTO> getTodasLasPersonas() {return ingresoRemote.getTodasLasPersonas();
}public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO){
return ingresoRemote.getPersonaPorRut(datosParaConsultarPersonaTO);
}
12.Crear métodos en el Helper de la capa de presentación
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
public List<PersonaTO> getTodasLasPersonas() {
return ingresoDelegate.getTodasLasPersonas();}
public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO) {
return ingresoDelegate.getPersonaPorRut(datosParaConsultarPersonaTO);
}
13.Crear Action para consultar a toda la tabla
package com.aplicacion.presentacion.action;
import java.util.ArrayList;
import java.util.List;
import com.aplicacion.presentacion.helper.EditPersonHelper;
import com.opensymphony.xwork2.ActionSupport;
import com.ingreso.negocio.to.PersonaTO;
public class TraerPersonasAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private EditPersonHelper editService = new EditPersonHelper();
private List<PersonaTO> listaPersonas = new ArrayList<PersonaTO>();
public String execute() throws Exception {
setListaPersonas(editService.getTodasLasPersonas());
return SUCCESS;
}
public List<PersonaTO> getListaPersonas() {
return listaPersonas;
}
public void setListaPersonas(List<PersonaTO> listaPersonas) {
this.listaPersonas = listaPersonas;
}
}
14.Crear Action para consultar a una persona por Rut
package com.aplicacion.presentacion.action;
import com.aplicacion.presentacion.helper.EditPersonHelper;
import com.ingreso.negocio.to.DatosParaConsultarPersonaTO;
import com.ingreso.negocio.to.PersonaTO;
import com.opensymphony.xwork2.ActionSupport;
public class ConsultarPersonaPorRutAction extends ActionSupport {
private EditPersonHelper editService = new EditPersonHelper();
private PersonaTO personaTO;
public String execute() throws Exception {
// editService.getTodasLasPersonas());
DatosParaConsultarPersonaTO datosParaConsultarPersonaTO = new DatosParaConsultarPersonaTO();
String rut="12322144-8";
//Seteo Rut;
datosParaConsultarPersonaTO.setRut(rut);
this.setPersonaTO(editService.getPersonaPorRut(datosParaConsultarPersonaTO));
return SUCCESS;
}
public void setPersonaTO(PersonaTO personaTO) {
this.personaTO = personaTO;
}
public PersonaTO getPersonaTO() {
return personaTO;
}
}
15.Registrar Action en struts.
<action name="traerPersonas" class="com.aplicacion.presentacion.action.TraerPersonasAction" >
<result name="success">/ingreso/ListadoPersonas.jsp</result></action>
<action name="traerPersonaPorRut" class="com.aplicacion.presentacion.action.ConsultarPersonaPorRutAction" >
<result name="success">/ingreso/PersonaPorRut.jsp</result></action>
16. Crear JSP para listar las personas.
ListadoPersonas.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><s:head /><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Listado Persona</title></head>
<body><h1>Listado</h1>
<table><s:iterator id="listado" value="listaPersonas" status="it"> <tr> <td><s:property value="firstName"/></td> <td><s:property value="lastName"/></td> <td><s:property value="residency"/></td> </tr></s:iterator>
</table></body></html>
17. Crear JSP para listar persona consultada por Rut.
PersonaPorRut.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Persona Por Rut</title></head><body><s:label key="personaTO.firstName" /> <s:label key="personaTO.lastName" /> <s:label key="personaTO.residency" />
</body></html>
18.Crear Menu para ejecutar Actions:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Struts 2 Form Tags - Welcome</title></head><body><h1>Pagina de edicion</h1>
<p><a href='<s:url action="edit" />' >Editar Información</a></p><p><a href='<s:url action="getmessage" />' >Message</a></p>
<p><a href='<s:url action="traerPersonas" />' >Listado</a></p><p><a href='<s:url action="traerPersonaPorRut" />' >Persona x Rut</a></p>
</body></html>