Sei sulla pagina 1di 17

GUA DE LABORATORIO 9

Acceso a base de datos MySQL (1/2!


Tecsup
LABORATORIO
Objetivos:
Desarrollar aplicaciones Web con Java
Equipos, Materiales, Programas y Recursos:
PC con Sistema Operativo Windows o Linux
Eclipse IDE
Android Development Tool para Eclipse
Android SDK
Itro!ucci":
En la presente sesin se detalla los undamentos para el dise!o de interaces We" para
mviles#
#eguri!a!:
Ubicar maletines y/o mochilas en el gabinete al fnal de aula de
laboratorio.
No ingresar con lquidos ni comida al aula de laboratorio.
Al culminar la sesin de laboratorio! apagar correctamente la computadora
y el monitor.
Preparaci":
Durante el desarrollo de los temas de clase se tendr"n e#ercicios e$plicativos en
cada uno de los puntos! ello le dar" a la sesin una interaccin de la teora y la
parte pr"ctica! ya que en todo el momento el alumno podr" comprobar en su
propia %&! todos los tems del manual.
Proce!imieto y Resulta!os:
Modelo de Dominio
Se de"en re$istrar los %suarios con los si$uientes datos& id' clave' nom"res' paterno'
materno' materno' correo' direccin' tel(ono ) estado#
Cada usuario en el sistema podr*a desempe!ar varios roles#
Por cada rol se re$istra el nom"re del rol ) su descripcin#
Se de"en re$istrar los productos con los si$uientes datos& id' nom"re' descripcin'
precio' stoc+' importancia ) ruta de la ima$en#
Cada producto pertenece a una cate$or*a# De cada cate$or*a se desea re$istrar& id'
nom"re ) descripcin#
La tienda virtual de"e re$istrar los pedidos# Cada pedido puede tener uno o varios
detalles#
Del pedido de"e re$istrarse& id' usuario ,uien -i.o el pedido' ec-a' estado ) total#
Dpto. de Informtica Pg. 1
Tecsup
Cada detalle del pedido de"e contener& el pedido' el producto' el precio su"total ) la
cantidad#
Dpto. de Informtica Pg. 2
Tecsup
Ela"orado en Ar$o%/L
Para $enerar las clases en 0ava&
1enerar 2 1enerar todas las clases# Ele$ir 0ava#
Dpto. de Informtica Pg. 3
Tecsup
Modelo de Datos
Ela"orado en /)S3L Wor+4enc-
Para $enerar el script para "ase de datos&
5ile 2 Exportar 2 5orward En$ineer S3L C6EATE script7
Dpto. de Informtica Pg. 4
Tecsup
IMPLEMENTACIN
Modelo de Dominio
Categoria.java
package trastienda.modelo'
import #ava.util.&ollection'
pulic class &ategoria (
private int id&ategoria'
private )tring nombre'
private )tring descripcion'
private &ollection*%roducto+ productos'
// ,. -scribir constructor vaco
// .. /enerar constructor con campos
// 0. /enerar getters y setters
1
Producto.java
package trastienda.modelo'
pulic class %roducto (
private int id%roducto'
private &ategoria categoria'
private )tring nombre'
private )tring descripcion'
private doule precio'
private int stoc2'
private int importancia'
private )tring imagen'
// ,. -scribir constructor vaco
// .. /enerar constructor con campos
// 0. /enerar getters y setters
1
Dpto. de Informtica Pg. 5
Tecsup
Capa de Persistencia
Nota3
&opiar el driver de 4y)56 en la carpeta /Web&ontent/W-789N:/lib
Cone!ion"D.java
package trastienda.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConexionBD {
public static Connection obtenerConexion! t"ro#s SQLException {
Connection con $ null;
tr% {
Class.&or'ame(com.m%sql.j)bc.Driver(!;
con $ DriverManager.getConnection(j)bc*m%sql*++local"ost+tien)a(,
(root(, (root(!;
- catc" Class'ot.oun)Exception e! {
e.printStac/0race!;
- catc" Exception e! {
e.printStac/0race!;
-
return con;
-
-
Dpto. de Informtica Pg. 6
Tecsup
"aseDA#.java
package trastienda.dao;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.1repare)Statement;
import java.sql.2esultSet;
import java.sql.SQLException;
public class BaseD34 {
protecte) voi) cerrarConexionConnection con! t"ro#s 2untimeException {
tr% {
i& con 5$ null 66 5con.isClose)!! {
con.close!;
-
- catc" SQLException se! {
S%stem.err.println(Error* cerrarConexion* ( 7 se!;
-
-
protecte) voi) cerrar2esultSet2esultSet rs! t"ro#s 2untimeException {
tr% {
i& rs 5$ null! {
rs.close!;
-
- catc" SQLException se! {
S%stem.err.println(Error* cerrar2esultSet* ( 7 se!;
-
-
protecte) voi) cerrarStatement1repare)Statement stmt!
t"ro#s 2untimeException {
tr% {
i& stmt 5$ null! {
stmt.close!;
-
- catc" SQLException se! {
S%stem.err.println(Error* cerrarStatement* ( 7 se!;
-
-
protecte) voi) cerrarCallableCallableStatement callstmt!
t"ro#s 2untimeException {
tr% {
i& callstmt 5$ null! {
callstmt.close!;
-
- catc" SQLException se! {
S%stem.err.println(Error* cerrarCallable* ( 7 se!;
-
-
-
Dpto. de Informtica Pg. 7
Tecsup
DA#E!cepcion.java
package trastienda.excepcion;
public class D34Excepcion exten)s Exception {
private static &inal long serial8ersion9:D $ ;L;
public D34Excepcion! {
super!;
-
public D34ExcepcionString arg<, 0"ro#able arg;! {
superarg<, arg;!;
-
public D34ExcepcionString arg<! {
superarg<!;
-
public D34Excepcion0"ro#able arg<! {
superarg<!;
-
-
Dpto. de Informtica Pg. 8
Tecsup
CategoriaDA#.java
pac/age trastien)a.)ao;
import java.sql.Connection;
import java.sql.1repare)Statement;
import java.sql.2esultSet;
import java.sql.SQLException;
import java.util.3rra%List;
import java.util.Collection;
import trastien)a.excepcion.D34Excepcion;
import trastien)a.mo)elo.Categoria;
import trastien)a.util.ConexionBD;
public class CategoriaD34 exten)s BaseD34 {
public Collection=Categoria> buscar1or'ombreString nombre!
t"ro#s D34Excepcion {
String quer% $ (select i)?categoria, nombre, )escripcion &rom categoria #"ere nombre li/e @(;
Collection=Categoria> lista $ ne# 3rra%List=Categoria>!;
Connection con $ null;
1repare)Statement stmt $ null;
2esultSet rs $ null;
tr% {
con $ ConexionBD.obtenerConexion!;
stmt $ con.prepareStatementquer%!;
stmt.setString;, (A( 7 nombre 7 (A(!;
rs $ stmt.executeQuer%!;
#"ile rs.next!! {
Categoria vo $ ne# Categoria!;
vo.set:)Categoriars.get:nt(i)?categoria(!!;
vo.set'ombrers.getString(nombre(!!;
vo.setDescripcionrs.getString()escripcion(!!;
lista.a))vo!;
-
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrar2esultSetrs!;
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
S%stem.out.printlnlista.siBe!!;
return lista;
-
public Categoria insertarCategoria vo! t"ro#s D34Excepcion {
String quer% $ (insert into categorianombre,)escripcion! values @,@!(;
Connection con $ null;
1repare)Statement stmt $ null;
2esultSet rs $ null;
tr% {
con $ ConexionBD.obtenerConexion!;
stmt $ con.prepareStatementquer%!;
stmt.setString;, vo.get'ombre!!;
stmt.setStringC, vo.getDescripcion!!;
int i $ stmt.execute9p)ate!;
i& i 5$ ;! {
t"ro# ne# SQLException('o se pu)o insertar(!;
Dpto. de Informtica Pg. 9
Tecsup
-
++ 4btener el ultimo i)
int i) $ <;
quer% $ (select last?insert?i)!(;
stmt $ con.prepareStatementquer%!;
rs $ stmt.executeQuer%!;
i& rs.next!! {
i) $ rs.get:nt;!;
-
vo.set:)Categoriai)!;
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrar2esultSetrs!;
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
return vo;
-
public Categoria obtenerint i)Categoria! t"ro#s D34Excepcion {
Categoria vo $ ne# Categoria!;
Connection con $ null;
1repare)Statement stmt $ null;
2esultSet rs $ null;
tr% {
String quer% $ (select i)?categoria, nombre, )escripcion &rom categoria #"ere
i)?categoria$@(;
con $ ConexionBD.obtenerConexion!;
stmt $ con.prepareStatementquer%!;
stmt.set:nt;, i)Categoria!;
rs $ stmt.executeQuer%!;
i& rs.next!! {
vo.set:)Categoriars.get:nt;!!;
vo.set'ombrers.getStringC!!;
vo.setDescripcionrs.getStringD!!;
-
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrar2esultSetrs!;
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
return vo;
-
public voi) eliminarint i)Categoria! t"ro#s D34Excepcion {
String quer% $ ()elete &rom categoria EFE2E i)?categoria$@(;
Connection con $ null;
1repare)Statement stmt $ null;
tr% {
con $ ConexionBD.obtenerConexion!;
stmt $ con.prepareStatementquer%!;
stmt.set:nt;, i)Categoria!;
int i $ stmt.execute9p)ate!;
i& i 5$ ;! {
t"ro# ne# SQLException('o se pu)o eliminar(!;
Dpto. de Informtica Pg. 10
Tecsup
-
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
-
public Categoria actualiBarCategoria vo! t"ro#s D34Excepcion {
String quer% $ (up)ate categoria set nombre$@,)escripcion$@ #"ere i)?categoria$@(;
Connection con $ null;
1repare)Statement stmt $ null;
tr% {
con $ ConexionBD.obtenerConexion!;
stmt $ con.prepareStatementquer%!;
stmt.setString;, vo.get'ombre!!;
stmt.setStringC, vo.getDescripcion!!;
stmt.set:ntD, vo.get:)Categoria!!;
int i $ stmt.execute9p)ate!;
i& i 5$ ;! {
t"ro# ne# SQLException('o se pu)o actualiBar(!;
-
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
return vo;
-
public Collection=Categoria> listar! t"ro#s D34Excepcion {
Collection=Categoria> c $ ne# 3rra%List=Categoria>!;
Connection con $ null;
1repare)Statement stmt $ null;
2esultSet rs $ null;
tr% {
con $ ConexionBD.obtenerConexion!;
String quer% $ (select i)?categoria,nombre,)escripcion &rom categoria or)er b%
nombre(;
stmt $ con.prepareStatementquer%!;
rs $ stmt.executeQuer%!;
#"ile rs.next!! {
Categoria vo $ ne# Categoria!;
vo.set:)Categoriars.get:nt(i)?categoria(!!;
vo.set'ombrers.getString(nombre(!!;
vo.setDescripcionrs.getString()escripcion(!!;
c.a))vo!;
-
- catc" SQLException e! {
S%stem.err.printlne.getMessage!!;
t"ro# ne# D34Excepcione.getMessage!!;
- &inall% {
t"is.cerrar2esultSetrs!;
t"is.cerrarStatementstmt!;
t"is.cerrarConexioncon!;
-
Dpto. de Informtica Pg. 11
Tecsup
return c;
-
-
Dpto. de Informtica Pg. 12
Tecsup
Capa de Negocio
GestionCategorias.java
pac/age trastien)a.negocio;
import java.util.Collection;
import trastien)a.)ao.CategoriaD34;
import trastien)a.excepcion.D34Excepcion;
import trastien)a.mo)elo.Categoria;
public class GestionCategorias {
public Collection=Categoria> buscar1or'ombreString nombre!
t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
return )ao.listar!;
-
public Categoria insertarString nombre, String )escripcion!
t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
Categoria vo $ ne# Categoria!;
vo.set'ombrenombre!;
vo.setDescripcion)escripcion!;
return )ao.insertarvo!;
-
public Categoria obtenerint i)Categoria! t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
return )ao.obteneri)Categoria!;
-
public voi) eliminarint i)Categoria! t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
)ao.eliminari)Categoria!;
-
public Categoria actualiBarint i)Categoria, String nombre,
String )escripcion! t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
Categoria vo $ ne# Categoria!;
vo.set:)Categoriai)Categoria!;
vo.set'ombrenombre!;
vo.setDescripcion)escripcion!;
return )ao.actualiBarvo!;
-
public Collection=Categoria> listar! t"ro#s D34Excepcion {
CategoriaD34 )ao $ ne# CategoriaD34!;
return )ao.listar!;
-
-
Dpto. de Informtica Pg. 13
Tecsup
Capa de Prueas
GestionCategoriasTest.java
pac/age trastien)a.test;
import java.util.Collection;
import junit.&rame#or/.3ssert;
import org.junit.0est;
import trastien)a.excepcion.D34Excepcion;
import trastien)a.mo)elo.Categoria;
import trastien)a.negocio.GestionCategorias;
public class GestionCategorias0est {
H0est
public voi) insertar0est! {
GestionCategorias negocio $ ne# GestionCategorias!;
tr% {
negocio.insertar(ElectrInicos(, (Categoria )e electrInicos(!;
Categoria nuevo $ negocio.obtenerJ!;
3ssert.assertEquals(Categoria )e electrInicos(, nuevo.getDescripcion!!;
- catc" D34Excepcion e! {
3ssert.&ail(.allo la inserciIn* ( 7 e.getMessage!!;
-
-
++ H0est
public voi) actualiBar0est! {
GestionCategorias negocio $ ne# GestionCategorias!;
tr% {
negocio.actualiBarJ, (ElectrInicos(, (Categoria )e electrInicos C(!;
Categoria nuevo $ negocio.obtenerJ!;
3ssert.assertEquals(Categoria )e electrInicos C(, nuevo.getDescripcion!!;
- catc" D34Excepcion e! {
3ssert.&ail(.allI la actualiBaciIn* ( 7 e.getMessage!!;
-
-
++ H0est
public voi) listar0est! {
GestionCategorias negocio $ ne# GestionCategorias!;
tr% {
Collection=Categoria> lista)o $ negocio.listar!;
S%stem.out.printlnlista)o.siBe!!;
Dpto. de Informtica Pg. 14
Tecsup
3ssert.assert0ruelista)o.siBe! > <!;
- catc" D34Excepcion e! {
3ssert.&ail(.allI el lista)o* ( 7 e.getMessage!!;
-
-
++ H0est
public voi) eliminar0est! {
GestionCategorias negocio $ ne# GestionCategorias!;
tr% {
negocio.eliminarK!;
Categoria nuevo $ negocio.obtenerK!;
3ssert.assertEqualsnull, nuevo.getDescripcion!!;
- catc" D34Excepcion e! {
3ssert.&ail(.allI la eliminiciIn* ( 7 e.getMessage!!;
-
-
-
Dpto. de Informtica Pg. 15
Tecsup
$oclusioes:
-n la presente sesin! se implement una aplicacin Web con Java.
Dpto. de Informtica Pg. 16

Potrebbero piacerti anche