Conexión base de datos con jdbc

14

Click here to load reader

Transcript of Conexión base de datos con jdbc

Page 1: Conexión base de datos con jdbc

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');

Page 2: Conexión base de datos con jdbc

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');

Page 3: Conexión base de datos con jdbc

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);

Page 4: Conexión base de datos con jdbc

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;

}

}

Page 5: Conexión base de datos con jdbc

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;

}}

Page 6: Conexión base de datos con jdbc

7. Crear métodos en la Interface del DAO. (cada DAO tiene su interfaz)

public List<PersonaTO> getTodasLasPersonas();public PersonaTO getPersonaPorRut(DatosParaConsultarPersonaTO datosParaConsultarPersonaTO);

Page 7: Conexión base de datos con jdbc

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();

Page 8: Conexión base de datos con jdbc

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

Page 9: Conexión base de datos con jdbc

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>();

Page 10: Conexión base de datos con jdbc

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;

}

}

Page 11: Conexión base de datos con jdbc

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;

Page 12: Conexión base de datos con jdbc

}

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>

Page 13: Conexión base de datos con jdbc

<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>

Page 14: Conexión base de datos con jdbc

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>