Sie sind auf Seite 1von 25

2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?

a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

Tema03:Utilicemosconsultassimplesycompuestasparaaccederadatos

Laclavedelxitoesconcentrarseenloquedeseamos,

noenloquetememos.

BrianTracy

BienvenidosalatercerasemanadelcursodeProgramacinAvanzada,enlaqueaprenderemosaestablecerunaconexinconla
basededatos,ascomolainsercin,actualizacinylaeliminacindedatosdesdeelentornodedesarrolloenjavamedianteeluso
declases.Tambinentenderemoslaimportanciadelalgicadenegocioenunaaplicacin,vinculadaalasentidadesyelusodelas
mismas.

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

IntroduccinalTema

EscucharAudio:
Nosehapodidocargarelcomplemento.
Eneltemaanteriorestablecimosnuestraconexinconlabasededatosmedianteelconceptodepersistenciadedatos,
representamosymapeamoslasclasesdenuestrabasededatosenJava.AhoraenstetemaestableceremoslaconexindeJava
conPostgreSQL,medianteloscomandosDriverManayeryConnection.TambinejecutaremosalgunassentenciasSQLsimplesy
complejasdesdenuestraaplicacin.

Otrotemaimportanteatratarenestasemanaeseldelalgicadelnegocio.Laprogramacindelalgicadelnegocio,estenfocada
alcumplimientodelaspolticasdelnegocio.Elsoftwaresecomunicademaneraamigableconelusuarioapartirdelainterfaz,la
LgicadeNegocioeslaquecapturalosdatosdeentradaylosprocesaparamostrarlosalusuario.

Unavezterminadaslasclasesenjavaycomprendidalafuncionalidaddelaccesoadatosveremoscmoseinterrelacionantodos
loselementospermitiendocomunicarlaaplicacinconlabasededatosparalamanipulacindeesto.

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

Aprendizajesesperados:Capacidad/Actitudes

Conozcamosahoralascapacidadesyactitudes
adesarrollarenestetercertema:
Capacidad:

RepresentarenJavalasclasesdeaccesoabasededatos.

Usaconsultassimplesycompuestasparaaccederadatos.

Programalalgicadenegociosarticulandolaspolticasdela
misma.

Actitudes:

Participaenlaejecucindeconsultassimplesycompuestas.

ValoralarepresentacindelasclasesyentidadesenJava.

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

Mapaconceptualreferidoaltema

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.1AccesoaDatos

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.1.1.RepresentacinenJavadelasclasesdeaccesoabasededatos.

Laprogramacinorientadaaobjetossebasaenlaprogramacindeclasesadiferenciadelaprogramacinestructurada,queestcentradaenlasfunciones.Hugor2013

Unaclaseesunmoldedelqueluegosepuedencrearmltiplesobjetos,consimilarescaractersticas.Unaclaseesunaplantilla(molde),quedefineatributos(variables)ymtodos(funciones).La
clasedefinelosatributosymtodoscomunesalosobjetosdeesetipo,peroluego,cadaobjetotendrsuspropiosvaloresycompartirnlasmismasfunciones.JavaYa.(2012).

Debemoscrearunaclaseantesdepodercrearobjetos(instancias)deesaclase.Alcrearunobjetodeunaclase,sedicequesecreaunainstanciadelaclaseounobjetopropiamentedicho.

Laestructuradeunaclasees:

class[nombredelaclase]{

[atributosovariablesdelaclase]

[mtodosofuncionesdelaclase]

[main]

Parapoderconectarnosaunabasededatossenecesitarapreviamentedeldriver:jdbc,ydelneasdecdigoquedetallemosacontinuacin:

ParareferenciaraunaBDseusanotacinsimilaraURL:jdbc:<subprotocolo>:<otros>

Ejemplo:jdbc:postgrestsql://localhost:5432/(ConsultarcmosehaceconsuBD)

Sedebeespecificareldriverqueseusar

Ejemplo:com.mysql.jdbc.Driver

AlconectarsealaBDeladministradorpuedesolicitarnombredeusuarioypassword.

Parafacilitarlaconexinseacostumbraausarunarchivodepropiedades,dejandolosparmetrosdeconfiguracinqueseleenantesdelaconexin.Ejemplo:

Ahorarepasamosalgunoscomandosimportantesdeconexin:

Clasejava.sql.DriverManager

StaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)

Creaunaconexinalabasededatos

Clasejava.sql.Connnection

StatementcreateStatement()

CreaunobjetoparaejecutarsentenciasSQL.

voidclose()

CierralaconexinalaBD

ResulSetexecuteQuery(Stringsql)

EjecutaconsultaSQLyretornaresultado.

Clasejava.sql.ResultSet

ResultSetMetaDatagetMetaData()

Obtienemetadatosdelresultado

Otros:

IntexecuteUpdate(Sringsql)

EjecutaINSERT,UPDATEoDELETE.TambinejecutaDDL(e.g.CREATETABLE).Retornanmeroderegistrosafectadoso1parasentenciasquenocuentanactualizacin.

booleanexecute(Stringsql)

EjecutasentenciaSQL.Retornatruesiobtieneresultado

intgetUpdateCount()

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
Retornanmeroderegistrosafectados

ResultSetgetResult()

RetornaelresultadodeunaconsultaonulldeacuerdoasiltimasentenciafueConsulta.

Ahoraveamoselcdigotalcomoquedaranuestraconexin:

protectedConnectionConectar(){

StringstrHost

StringstrPort

StringstrDatabase

StringstrUser

StringstrPassword

StringstrCadenaConexion

try{

strHost="localhost"

strPort="5432"

strDatabase="PEDIDOS"//NombredeBasedeDatos

strUser="administrador"

strPassword="administrador"

strCadenaConexion="jdbc:postgresql://"+strHost+":"+strPort+"/"+strDatabase

Class.forName("org.postgresql.Driver")

returnDriverManager.getConnection(strCadenaConexion,strUser,strPassword)

}catch(ClassNotFoundException|SQLExceptionex){

System.out.println(ex.getMessage())

returnnull

Adicionaremosanuestrocdigolneasquenosservirndeapoyoalmomentoderealizartransaccionesdediversostipos:

protectedResultSetRetornar_Datos(StringComando_SQL){//ConsultasSQL

//@Variables

Connectionconect

Statementstate//InterpretedeSetenciasSQL

ResultSetresultado//RetornadordeResultados

try{

conect=Conectar()//AbrirConexion

state=conect.createStatement()

resultado=state.executeQuery(Comando_SQL)//EjecutaconsultaSQLyretornaResultado

conect.close()//CerrarConexion

returnresultado

}catch(SQLExceptionex){

System.out.println("Error...."+ex.toString())

returnnull

protectedbooleanEjecuta_Sql(StringComando_SQL){//ComandoSQL(Insert,Update,Delete)

//@Variables

Connectionconect

Statementstate//InterpretedeSetenciasSQL

try{

conect=Conectar()//AbrirConexion

state=conect.createStatement()

state.executeUpdate(Comando_SQL)//EjecutaelcomandoSQL(Insert,Update,Delete)

conect.close()//CerrarConexion

state.close()

returntrue

}catch(SQLExceptionex){

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
System.out.println("Error...."+ex.toString())

returnfalse

protectedbooleanEjecuta_Transaccion_Sql(ListComandoTransaccion_SQL){//TransaccionSQL(Insert,Update,Delete)

//@Variables

Connectionconect

Statementstate//InterpretedeSetenciasSQL

conect=Conectar()//AbrirConexion

try{

conect.setAutoCommit(false)//DeshabilitalaEjecucinAutomticadelasSenteciasSQL

state=conect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)

for(inti=0i<ComandoTransaccion_SQL.size()i++){

state.executeUpdate((String)ComandoTransaccion_SQL.get(i))

conect.commit()//ComprometelassentenciasSQL

state.close()

conect.close()//CerrarConexion

returntrue

}catch(SQLExceptionex){

System.out.println("Error...."+ex.toString())

try{

conect.rollback()//AnulalassentenciasSQL

conect.close()

System.out.println("TransaccionFallada...NoayRegistroenlaBasedeDatos")

returnfalse

}catch(SQLExceptionse){

System.out.println("Error...."+se.toString())

returnfalse

protectedbooleanEjecuta_Procedimiento(StringProcedimiento_Sql){

//@Variables

Connectionconect

CallableStatementcallstate//InterpretedeProcedimientosSQL

booleanrpta_procedimiento//ResultadodelProcedimiento(Insert,Update,Delete)

try{

conect=Conectar()//AbrirConexion

callstate=conect.prepareCall(Procedimiento_Sql)

callstate.registerOutParameter(1,Types.BOOLEAN)

callstate.execute()

rpta_procedimiento=callstate.getBoolean(1)

conect.close()

callstate.close()

returnrpta_procedimiento

}catch(SQLExceptionex){

returnfalse

protectedbooleanEjecuta_Transaccion_Procedimiento(ListProcedimientoTransaccion_Sql){

//@Variables

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
Connectionconect

CallableStatementcallstate//InterpretedeProcedimientosSQL

conect=Conectar()//AbrirConexion

try{

conect.setAutoCommit(false)//DeshabilitalaEjecucinAutomticadelosProcedimientosSQL

for(inti=0i<ProcedimientoTransaccion_Sql.size()i++){

callstate=conect.prepareCall((String)ProcedimientoTransaccion_Sql.get(i))

callstate.registerOutParameter(1,Types.BOOLEAN)

callstate.execute()

if(!callstate.getBoolean(1)){

conect.rollback()//AnulalasprocedimientosSQL

conect.close()

returnfalse

conect.commit()//ComprometelosProcedimientosSQL

conect.close()//CerrarConexion

returntrue

}catch(SQLExceptionex){

System.out.println("Error...."+ex.toString())

try{

conect.rollback()

conect.close()

System.out.println("TransaccionFallada...NoayRegistroenlaBasedeDatos")

returnfalse

}catch(SQLExceptionse){

System.out.println("Error...."+se.toString())

returnfalse

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.1.2.Consultasdedatossimplesycompuestos.

Lasconsultassonlasqueverdaderamentehaceneltrabajoenunabasededatos.Puedenrealizarnumerosasfuncionesdiferentes.Sufuncinmscomnesrecuperardatosespecficosdelastablas.
Losdatosquedeseaversuelenestardistribuidosporvariastablasy,graciasalasconsultas,puedeverlosenunasolahojadedatos.Adems,puestoquenormalmentenodeseavertodoslosregistros
alavez,lasconsultaslepermitenagregarcriteriospara"filtrar"losdatoshastaobtenersololosregistrosquedesee.Lasconsultasamenudosirvendeorigenderegistrosparaformularioseinformes.
Microsoft.(2007).

Haydostiposbsicosdeconsultas:lasdeseleccinylasdeaccin.Unaconsultadeseleccinsimplementerecuperalosdatosyhacequeestndisponiblesparasuuso.Losresultadosdelaconsulta
puedenverseenlapantalla,imprimirseocopiarsealportapapeles.Osepuedenutilizarcomoorigenderegistrosparaunformularioouninforme.Microsoft.(2007).

Unaconsultadeaccin,comosunombreindica,realizaunatareaconlosdatos.Lasconsultasdeaccinpuedenservirparacreartablasnuevas,agregardatosatablasexistentes,actualizardatoso
eliminardatos.Dentrodelasconsultasdeseleccinpodemosidentificarlasdeltipoinner,leftyjoincomolasmsutilizadas.Lascualesdefiniremosacontinuacin:

INNERJOIN:EnestaoperacinsecalculaelproductocruzadodetodoslosregistrosascadaregistroenlatablaAescombinadoconcadaregistrodelatablaBperoslopermanecenaquellos
registros en la tabla combinada que satisfacen las condiciones que se especifiquen. Este es el tipo de JOIN ms utilizado, por lo que es considerado el tipo de combinacin predeterminado.
UniversidadDonBosco.(2014).

AhoraveamosunejemplodelInnerJoinprimeroconstruiremosunaconsultadentrodeunmtodoquenospermitaarecuperardatosparaundeterminadocaso,talcomosemuestraenelsiguiente
cdigo:

/*PRODUCTOSVALIDADOS
*Obtenemosunalistadeproductosconlosdatosdesuproveedorycategoria
*Ylosproductosquenotienenunproveedorocategoriaasignada(unvalornuloenelcampoproveedorocategoriadelatablaProducto)
*noaparecenenelresultadoyaquelacondicinprov.idproveedor=prod.idproveedorycatg.idcategoria=prod.idcategoria
*sersiemprenulaparaesosproductos
publicListConsultar_Productos_Validados(){
ListLista=newArrayList()
try{
StringCADENA_SQL="SELECTprod.idproducto,prod.descripcion,prod.preciounitario,prod.existencia,"
+"prov.idproveedor,prov.nombreasnombreproveedor,prov.contacto,prov.telefonocelular,prov.telefonofijo,"
+"catg.idcategoria,catg.nombreasnombrecategoria"
+"FROMProductoprod"
+"innerjoinProveedorprovonprov.idproveedor=prod.idproveedor"
+"innerjoinCategoriacatgoncatg.idcategoria=prod.idcategoria"
ConexionObjConeccion=newConexion()
ResultSetresult=ObjConeccion.Retornar_Datos(CADENA_SQL)
while(result.next()){
EntidadProductoObjProducto=newEntidadProducto()
ObjProducto.setIdproducto(result.getInt("idproducto"))
ObjProducto.setDescripcion(result.getString("descripcion"))
ObjProducto.setPreciounitario(result.getDouble("preciounitario"))
ObjProducto.setExistencia(result.getInt("existencia"))

EntidadProveedorObjProveedor=newEntidadProveedor()
ObjProveedor.setIdproveedor(result.getInt("idproveedor"))
ObjProveedor.setNombre(result.getString("nombreproveedor"))
ObjProveedor.setContacto(result.getString("contacto"))
ObjProveedor.setTelefonocelular(result.getString("telefonocelular"))
ObjProveedor.setTelefonofijo(result.getString("telefonofijo"))
ObjProducto.setEntidadProveedor(ObjProveedor)

EntidadCategoriaObjCategoria=newEntidadCategoria()
ObjCategoria.setIdcategoria(result.getInt("idcategoria"))
ObjCategoria.setNombre(result.getString("nombrecategoria"))
ObjProducto.setEntidadCategoria(ObjCategoria)

Lista.add(ObjProducto)
}
returnLista
}catch(Exceptionex){
returnnull
}}

Parapoderprobarlaconsultaparaelcasoanteriormenteplanteado,construiremosunmtodoparapoderverificarnuestrocdigo,talcomosemuestraenlasiguientecdigo:

publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoAccesoDatosdeProductoyrealizamoslaconsulta:PRODUCTOSVALIDADOS
AccesoProductoaProducto=newAccesoProducto()
ListListaProductos=aProducto.Consultar_Productos_Validados()
//MostramoslosDatos
System.out.println("LISTADEPRODUCTOSVALIDADOS")
for(inti=0i<ListaProductos.size()i++){
EntidadProductoObjProducto=(EntidadProducto)ListaProductos.get(i)//CasteamoslafiladeListaProductosaEntidadProducto
System.out.println("IdProducto:"+ObjProducto.getIdproducto())
System.out.println("Proveedor:"+ObjProducto.getEntidadProveedor().getNombre())
System.out.println("Categoria:"+ObjProducto.getEntidadCategoria().getNombre())
System.out.println("Descripcin:"+ObjProducto.getDescripcion())
System.out.println("PrecioUnitario:S/."+ObjProducto.getPreciounitario())
System.out.println("Existencia:"+ObjProducto.getExistencia())
System.out.println("")
}
}

Delocualobtendremoselsiguienteresultado:

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

LEFTJOIN:LasentenciaLEFTJOINretornalaparejadetodoslosvaloresdelatablaizquierdaconlosvaloresdelatabladeladerechacorrespondientes,oretornaunvalornuloNULLencasodeno
correspondencia.Gajardo2013.

AhoraparapoderentendermejorelusodelLeftJoin,veremosacontinuacinunejemplo,paracualrealizaremosunaconsultaalabasededatosenfuncindelproblemaplanteado:

/*PRODUCTOSSINVALIDAR
*Obtenemosunalistadeproductosconlosdatosdesuproveedorycategoria
*Ylosproductosquenotenganproveedory/ocategoriaaparecenconsusdatosnormalesy
*losdatosdeproveedory/ocategorianulos.
*/
publicListConsultar_Productos_SinValidar(){
ListLista=newArrayList()
try{
StringCADENA_SQL="SELECTprod.idproducto,prod.descripcion,prod.preciounitario,prod.existencia,"
+"prov.idproveedor,prov.nombreasnombreproveedor,prov.contacto,prov.telefonocelular,prov.telefonofijo,"
+"catg.idcategoria,catg.nombreasnombrecategoria"
+"FROMProductoprod"
+"leftjoinProveedorprovonprov.idproveedor=prod.idproveedor"
+"leftjoinCategoriacatgoncatg.idcategoria=prod.idcategoria"
ConexionObjConeccion=newConexion()
ResultSetresult=ObjConeccion.Retornar_Datos(CADENA_SQL)
while(result.next()){
EntidadProductoObjProducto=newEntidadProducto()
ObjProducto.setIdproducto(result.getInt("idproducto"))
ObjProducto.setDescripcion(result.getString("descripcion"))
ObjProducto.setPreciounitario(result.getDouble("preciounitario"))
ObjProducto.setExistencia(result.getInt("existencia"))

if(result.getString("idproveedor")!=null){
EntidadProveedorObjProveedor=newEntidadProveedor()
ObjProveedor.setIdproveedor(result.getInt("idproveedor"))
ObjProveedor.setNombre(result.getString("nombreproveedor"))
ObjProveedor.setContacto(result.getString("contacto"))
ObjProveedor.setTelefonocelular(result.getString("telefonocelular"))
ObjProveedor.setTelefonofijo(result.getString("telefonofijo"))
ObjProducto.setEntidadProveedor(ObjProveedor)
}

if(result.getString("idcategoria")!=null){
EntidadCategoriaObjCategoria=newEntidadCategoria()
ObjCategoria.setIdcategoria(result.getInt("idcategoria"))
ObjCategoria.setNombre(result.getString("nombrecategoria"))
ObjProducto.setEntidadCategoria(ObjCategoria)
}

Lista.add(ObjProducto)
}
returnLista
}catch(Exceptionex){
returnnull
}
}

Ahoraprobaremoselcdigoanteriormenteplanteado,paralocualcrearemosunmtododeltipomain:

publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoAccesoDatosdeProductoyrealizamoslaconsulta:PRODUCTOSSINVALIDAR
AccesoProductoaProducto=newAccesoProducto()
ListListaProductos=aProducto.Consultar_Productos_SinValidar()
//MostramoslosDatos
System.out.println("LISTADEPRODUCTOSSINVALIDAR")
for(inti=0i<ListaProductos.size()i++){
EntidadProductoObjProducto=(EntidadProducto)ListaProductos.get(i)//CasteamoslafiladeListaProductosaEntidadProducto
System.out.println("IdProducto:"+ObjProducto.getIdproducto())
if(ObjProducto.getEntidadProveedor()!=null){//PreguntamossielProveedoresdiferentedeNulo
System.out.println("Proveedor:"+ObjProducto.getEntidadProveedor().getNombre())
}else{
System.out.println("Proveedor:")
}
if(ObjProducto.getEntidadCategoria()!=null){//PreguntamossilaCategoriadiferentedeNulo
System.out.println("Categoria:"+ObjProducto.getEntidadCategoria().getNombre())
}else{
System.out.println("Categoria:")
}
System.out.println("Descripcin:"+ObjProducto.getDescripcion())
System.out.println("PrecioUnitario:S/."+ObjProducto.getPreciounitario())
System.out.println("Existencia:"+ObjProducto.getExistencia())
System.out.println("")
}
}

Elresultadoaobtenerseenpantalla,serelsiguiente:

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

RIGHTJOIN:LasentenciaRIGHTJOINretornalaparejadetodoslosvaloresdelatabladerechaconlosvaloresdelatabladelaizquierdacorrespondientes,oretornaunvalornuloNULLencasode
nocorrespondencia.Gajardo,2013.

ParapoderdemostrarelRightJoin,realizaremosunmtodoconunconsultaquenospermitaanalizarlosmsdetenidamente:

/*PRODUCTOSPORPROVEEDOR
*Obtenemosunalistadeproductosconlosdatosdesuproveedor,
*yademsapareceunafilaporcadaproveedorquenoestasignadaaningnproducto
*conlosdatosdelpoductoigualanulo.
*/
publicListConsultar_Productos_PorProveedor(){
ListLista=newArrayList()

try{

StringCADENA_SQL="SELECTprod.idproducto,prod.descripcion,prod.preciounitario,prod.existencia,"

+"prov.idproveedor,prov.nombreasnombreproveedor,prov.contacto,prov.telefonocelular,prov.telefonofijo"

+"FROMProductoprod"

+"rightjoinProveedorprovonprov.idproveedor=prod.idproveedor";

ConexionObjConeccion=newConexion();

ResultSetresult=ObjConeccion.Retornar_Datos(CADENA_SQL);

while(result.next()){

EntidadProductoObjProducto=newEntidadProducto();

if(result.getString("idproducto")!=null){

ObjProducto.setIdproducto(result.getInt("idproducto"));

ObjProducto.setDescripcion(result.getString("descripcion"));

ObjProducto.setPreciounitario(result.getDouble("preciounitario"));

ObjProducto.setExistencia(result.getInt("existencia"));

EntidadProveedorObjProveedor=newEntidadProveedor();

ObjProveedor.setIdproveedor(result.getInt("idproveedor"));

ObjProveedor.setNombre(result.getString("nombreproveedor"));

ObjProveedor.setContacto(result.getString("contacto"));

ObjProveedor.setTelefonocelular(result.getString("telefonocelular"));

ObjProveedor.setTelefonofijo(result.getString("telefonofijo"));

ObjProducto.setEntidadProveedor(ObjProveedor);

Lista.add(ObjProducto);

returnLista;

}catch(Exceptionex){

returnnull;

Parapoderprobarloanteriormenteplanteado,crearemosunmtododeltipomain,paraverlosresultadoscuyocdigoserelsiguiente:

publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoAccesoDatosdeProductoyrealizamoslaconsulta:PRODUCTOSPORPROVEEDOR
AccesoProductoaProducto=newAccesoProducto()
ListListaProductos=aProducto.Consultar_Productos_PorProveedor()
//MostramoslosDatos
System.out.println("LISTADEPRODUCTOSPORPROVEEDOR")
for(inti=0i<ListaProductos.size()i++){
EntidadProductoObjProducto=(EntidadProducto)ListaProductos.get(i)//CasteamoslafiladeListaProductosaEntidadProducto
System.out.println("Proveedor:"+ObjProducto.getEntidadProveedor().getNombre())
if(ObjProducto.getIdproducto()!=null){//PreguntamossielProductoesdiferentedeNulo
System.out.println("IdProducto:"+ObjProducto.getIdproducto())
System.out.println("Descripcin:"+ObjProducto.getDescripcion())
System.out.println("PrecioUnitario:S/."+ObjProducto.getPreciounitario())
System.out.println("Existencia:"+ObjProducto.getExistencia())
}else{
System.out.println("IdProducto:")

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
System.out.println("Descripcin:")
System.out.println("PrecioUnitario:")
System.out.println("Existencia:")
}
System.out.println("")
}
}

Elresultadoesperadoserelsiguiente:

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.1.3.Insercin,actualizacinyeliminacindedatos.

Lainsercin,actualizacinyeliminacinsepuederealizarmedianteunaconsultadeaccin,comoloindicamosenelpuntoanterior.
Lainsercin,actualizacinyeliminacindedatosserealizamediantesentenciascomoseveacontinuacin:

INSERCIN:LainstruccinINSERTpermitecrearoinsertarnuevosregistrosenunatabla,veamossusintaxisconunejemplo
prctico,lainsercindeunregistroenunatablacualquiera:

INSERTINTO
NOMBRETABLA(Nombrecampo1,Nombrecampo2,campoN)
VALUES(valor1,valor2,valor3,...,valorN)

AhorarecordemoslaestructuradenuestroObjetoClientequefuepreviamentecreadoenlacapadeentidades(Objetoconelcual
realizaremosnuestroejemplo):

packageEntidades
publicclassEntidadCliente{
Integeridcliente
Stringcedula_ruc
Stringnombrecia
Stringnombrecontacto
Stringdireccion
Stringfax
Stringemail
Stringtelefonocelular
Stringtelefonofijo
publicEntidadCliente(){
}
publicIntegergetIdcliente(){
returnidcliente
}
publicvoidsetIdcliente(Integeridcliente){
this.idcliente=idcliente
}
publicStringgetCedula_ruc(){
returncedula_ruc
}
publicvoidsetCedula_ruc(Stringcedula_ruc){
this.cedula_ruc=cedula_ruc
}
publicStringgetNombrecia(){
returnnombrecia
}

publicStringgetNombrecia(){
returnnombrecia
}
publicvoidsetNombrecia(Stringnombrecia){
this.nombrecia=nombrecia
}
publicStringgetNombrecontacto(){
returnnombrecontacto
}
publicvoidsetNombrecontacto(Stringnombrecontacto){
this.nombrecontacto=nombrecontacto
}
publicStringgetDireccion(){
returndireccion
}
publicvoidsetDireccion(Stringdireccion){
this.direccion=direccion
}
publicStringgetFax(){
returnfax
}
publicvoidsetFax(Stringfax){
https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
this.fax=fax
}
publicStringgetEmail(){
returnemail
}
publicvoidsetEmail(Stringemail){
this.email=email
Primeroprogramaremosenlacapadeaccesodedatos,enlaclasedeclienteelcdigoquenospermitirinsertarelregistro:
publicbooleanRegistrar(EntidadClienteObjCliente){
try{
StringCADENA_SQL="INSERTINTOClienteVALUES("+
"'"+ObjCliente.getIdcliente()+"',"+
"'"+ObjCliente.getCedula_ruc()+"',"+
"'"+ObjCliente.getNombrecia()+"',"+
"'"+ObjCliente.getNombrecontacto()+"',"+
"'"+ObjCliente.getDireccion()+"',"+
"'"+ObjCliente.getFax()+"',"+
"'"+ObjCliente.getEmail()+"',"+
"'"+ObjCliente.getTelefonocelular()+"',"+
"'"+ObjCliente.getTelefonofijo()+"')"
ConexionObjConeccion=newConexion()
returnObjConeccion.Ejecuta_Sql(CADENA_SQL)
}catch(Exceptionex){
returnfalse
}
}

AhoracrearemosunaclasedeltipomainquenospermitirinsertarunregistrodeClienteenlabasededatos,elcdigonos
quedarcomosemuestraacontinuacin:

packageAccesoDatos
importEntidades.EntidadCliente
importjava.io.IOException
publicclassTest_AccesoDatos{
publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoClienteyagregamosloscamposaRegistrar
EntidadClienteObjCliente=newEntidadCliente()
ObjCliente.setIdcliente(13)
ObjCliente.setCedula_ruc("95874512567")
ObjCliente.setNombrecia("MinimarketRosita")
ObjCliente.setNombrecontacto("SaritaLopez")
ObjCliente.setDireccion("AvBalta#1026J.L.OChiclsyo")
ObjCliente.setFax("02401")
ObjCliente.setEmail("rositamarket@gmail.com")
ObjCliente.setTelefonocelular("979568214")
ObjCliente.setTelefonofijo("074159564")
//CreamoslaObjetodeAccesoDatosdelCliente
AccesoClienteaCliente=newAccesoCliente()
if(aCliente.Registrar(ObjCliente)){
System.out.println("RegistradoCorrectamente")
}else{
System.out.println("ErrordeInsercin")
}
}
}

Unavezquetenemosnuestrocdigoimplementadoejecutaremosnuestrocdigo:

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
Elresultadoesperado,queindicarqueseinsertelregistro,nosmostrar:

ACTUALIZACIN:LainstruccinUPDATEpermiteactualizarregistrosdeunatabla.Debemosporlotantoindicarqueregistrosse
quiereactualizarmediantelaclusulaWHERE,yquecamposmediantelaclusulaSET,ademssedeberindicarquenuevodato
vaaguardarcadacampo.DeleteSQL.(2007).

UPDATE
NOMBRETABLASETNombrecampo1=Valor1
WHERENombrecampo2=Valor2

Iniciaremosprogramandoenlacapadeaccesodedatosenlaclasedelclienteelmtodoquenospermitaactualizarunregistrode
labasededatos:

publicbooleanModificar(EntidadClienteObjCliente){
try{
StringCADENA_SQL="UPDATEClienteSET"
+"cedula_ruc='"+ObjCliente.getCedula_ruc()+"',"
+"nombrecia='"+ObjCliente.getNombrecia()+"',"
+"nombrecontacto='"+ObjCliente.getNombrecontacto()+"',"
+"direccion='"+ObjCliente.getDireccion()+"',"
+"fax='"+ObjCliente.getFax()+"',"
+"email='"+ObjCliente.getEmail()+"',"
+"telefonocelular='"+ObjCliente.getTelefonocelular()+"',"
+"telefonofijo='"+ObjCliente.getTelefonofijo()+"'"
+"WHEREidcliente='"+ObjCliente.getIdcliente()+"'"
ConexionObjConeccion=newConexion()
returnObjConeccion.Ejecuta_Sql(CADENA_SQL)
}catch(Exceptionex){
returnfalse
}
}

Ahoracrearemosunaclasequenospermitaprobarquelaclasemodificaractualicnuestroregistroenlabasededatos.Paraello
llenaremoselobjetoconlosdatosnecesariosyllamaremosalaclaseModificar():

importEntidades.EntidadCliente
importjava.io.IOException
publicclassTest_AccesoDatos
publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoClienteyagregamosloscamposaModificar
EntidadClienteObjCliente=newEntidadCliente()
ObjCliente.setIdcliente(5)
ObjCliente.setCedula_ruc("18934567760")
ObjCliente.setNombrecia("SUPERMERCADODORADO")
ObjCliente.setNombrecontacto("LORENAPAZ")
ObjCliente.setDireccion("AV.6DICIEMBRE")
ObjCliente.setFax("")
ObjCliente.setEmail("epaz@hotmail.com")
ObjCliente.setTelefonocelular("985624157")
ObjCliente.setTelefonofijo("0748597514")
//CreamoslaObjetodeAccesoDatosdelCliente
AccesoClienteaCliente=newAccesoCliente()
if(aCliente.Modificar(ObjCliente)){
System.out.println("ModificadoCorrectamente")
}else{
System.out.println("ErrorenlaModificacin")
}
}

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

ELIMINACIN:LainstruccinDELETEpermiteeliminarregistrosdeunatabla,susintaxisessimple,puestoquesolodebemos
indicarqueregistrosdeseamoseliminarmediantelaclusulaWHERE.DeleteSQL.(2007).

DELETE
NOMBRETABLA)
WHERENombreCampo1=Valor1

Ahoraprogramaremoselmtodoquenospermitaeliminarelregistrodelabasededatoselcualnosquedardelasiguiente
manera:

publicbooleanEliminar(EntidadClienteObjCliente){
try{
StringCADENA_SQL="DELETEFROMCliente"
+"WHEREidcliente='"+ObjCliente.getIdcliente()+"'"
ConexionObjConeccion=newConexion()
returnObjConeccion.Ejecuta_Sql(CADENA_SQL)
}catch(Exceptionex){
returnfalse
}
}

Parapoderdarconformidadalcdigoplanteadoanteriormenteahoraenunanuevaclaseprobaremosquesepuedaeliminarun
registrodelabasededatos:

packageAccesoDatos
importEntidades.EntidadCliente
importjava.io.IOException
publicclassTest_AccesoDatos{
publicstaticvoidmain(String[]args)throwsIOException{
//CreamoselObjetoClienteyagregamosidclientedelRegistroaEliminar
EntidadClienteObjCliente=newEntidadCliente()
ObjCliente.setIdcliente(11)
//CreamoslaObjetodeAccesoDatosdelCliente
AccesoClienteaCliente=newAccesoCliente()
if(aCliente.Eliminar(ObjCliente)){
System.out.println("EliminadoCorrectamente")
}else{
System.out.println("ErrorenlaModificacin")
}
}
}

Elresultadoenconsolanosconfirmarlaeliminacindelregistro,despusdecorrerlaclase:

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.2LgicadeNegocios

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.2.1.Programacindelalgicadelnegocio,expresadaenlaspolticasdela
misma.

POLTICASDENEGOCIO:

Describe las polticas, normas, operaciones, definiciones y restricciones presentes en una organizacin y que son de vital
importanciaparaalcanzarlosobjetivosmisionales.Daedalus.(2012).

Ejemplosdereglasdenegocio:"Unclientealquefacturamosmsde10.000alaoesunclientedetipoA","AlosclientesdetipoA
lesaplicamosundescuentodel10%enpedidossuperioresa3.000".

Las organizaciones funcionan siguiendo mltiples reglas de negocio, explcitas o tcitas, que estn embebidas en procesos,
aplicacionesinformticas,documentos,etc.Puedenresidirenlacabezadealgunaspersonasoenelcdigofuentedeprogramas
informticos.

Enlosltimosaossevieneobservandounatendenciaagestionardeformasistemticaycentralizadalasreglasdenegocio,de
modoqueseafcilysencilloconsultarlas,entenderlas,utilizarlas,cambiarlas,etc.Paraellosepuedeutilizarunmotordereglasde
negocio.Elmotordereglasdenegocioesunsistemaqueseconfiguraparadarservicioalasnecesidadesdenegocioatravsdela
definicindeobjetosyreglasdenegocio,elsoftwareserigeporflujosquederivanresponsabilidadesalosdistintoscargosdela
empresa repartiendo as el trabajo equitativamente y cuantitativamente, cuando, quien y donde tiene que desempear la tarea
asignada.

PROGRAMACINDELALGICADELNEGOCIO:

Eldiseoprocedimentalorganizaelcdigoenfuncionesyestructurasdedatossimples.Lasestructurasdedatos,generalmentese
crean,seinicializanysepasancomoparmetrosalasfunciones.Larelacinentreestasfuncionesylosdatosqueutilizansuelen
asociarseenlibrerassegnelcriteriodelprogramador..Martn(2012).

Por el contrario, la aproximacin orientada a objetos organiza el cdigo en objetos que contienen ambos aspectos, datos y
comportamiento.Dichosobjetoscolaboran,generalmentemedianteherenciaocomposicinpararesolverlalgicadelaaplicacin.
Larelacinentrelosdatosylasfuncionesquelosusanestmantenidaensumayorparteporelpropiolenguaje.Generalmenteel
diseoorientadoaobjetosesmsfcildeentender,mantener,extenderyprobar.Martn(2012)

Ahoraprogramaremosenlalgicadelnegocio,algunaspolticasdelamismatalcomomuestranlosdossiguientesejemplos:

//ValidacindelaLgicadeNegocio
publicbooleanRegistrar(EntidadOrdenObjOrden){
try{
/*VALIDACIONDEEXISTENCIAS
*Validamossilaexistenciadeproductosseamenorigual
*alacantidaddelaordendeVenta
*/
List<EntidadDetalleOrden>List_DetalleOrden=ObjOrden.getList_DetalleOrden()
for(inti=0i<List_DetalleOrden.size()i++){
EntidadDetalleOrdenObjDetalleOrden=List_DetalleOrden.get(i)
EntidadProductoObjProducto=ObjDetalleOrden.getEntidadProducto()
if(ObjDetalleOrden.getCantidad()>ObjProducto.getExistencia()){
System.out.println("Error:LaCantidaddeVentaesmayoralaExistenciadelProducto'"+
ObjProducto.getDescripcion()+"'")
returnfalse
}
}


/*CALCULODELDESCUENTOYELTOTALDELAORDEN
*Validamossielsubtotaldelaordenllegaaunmontoespecifico,seleasignarundescuento:
*a)SielsubtotaldelaordenesmayorigualaS/.30seledescuentael2%delsubtotal
*b)SielsubtotaldelaordenesmayorigualaS/.50seledescuentael4%delsubtotal
*c)SielsubtotaldelaordenesmayorigualaS/.70seledescuentael6%delsubtotal
*/
DoubleDescuento_Orden
DoubleTotal_Orden
if(SubTotal_Orden>=70){
Descuento_Orden=SubTotal_Orden*0.06//CalculamoselDescuentodel6%
System.out.println("ATENCION:SeregistroundescuentodeS/."+Descuento_Orden)
}else{

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
if(SubTotal_Orden>=50){
Descuento_Orden=SubTotal_Orden*0.04//CalculamoselDescuentodel4%
System.out.println("ATENCION:SeregistroundescuentodeS/."+Descuento_Orden)
}else{
if(SubTotal_Orden>=30){
Descuento_Orden=SubTotal_Orden*0.02//CalculamoselDescuentodel2%
System.out.println("ATENCION:SeregistroundescuentodeS/."+Descuento_Orden)
}else{
Descuento_Orden=0.0
}
}
}
Total_Orden=SubTotal_OrdenDescuento_Orden
//FINDELAVALIDACION

AccesoOrdenodao=newAccesoOrden()
returnodao.Registrar(ObjOrden)
}catch(Exceptionex){
returnfalse
}
}

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.2.2.UsodelasentidadesrepresentadasenJava.

Bsicamenteobservaremoscomolalgicadelnegociohaceusodelasentidadesdebidoaquelosobjetoscuentanconlosdatos
quelalgicadelnegocionecesitaparapoderaplicarsusreglas.

Recordemoselejemplomostradoanteriormente:

Ejemplosdereglasdenegocio:"Unclientealquefacturamosmsde10.000alaoesunclientedetipoA","AlosclientesdetipoA
lesaplicamosundescuentodel10%enpedidossuperioresa3.000".

Deltextoanteriormentevistopodemosdefinirbiendosreglas.Laprimeraesquenuestralgicadenegociodebercalcularelmonto
facturadoporclientealao,ydefinirsielclienteesdeltipoAonoloes.Adicionalaestonuestralgicagenerarundescuento
dependiendosielclienteestipoAonoloes.

VistodeotromodonuestraaplicacinidentificarsielclienteesdeltipoA,yenfuncindeestoasignarundescuentoencasole
corresponda.Paratodoestonuestraaplicacinnecesitahacerusodelasentidadespreviamentedefinidas,locuallepermitemayor
agilidadycomprensinaldesarrollador.

Ahoraveamosunejemplo:

/*CALCULARELPRECIOTOTAL(DetalleOrden)YSUBTOTAL(Orden)
*Calculamoselpreciototaldecadadetalledeordeny
*elsutotaldelaorden
*/
DoubleSubTotal_Orden=0.0
for(inti=0i<List_DetalleOrden.size()i++){
EntidadDetalleOrdenObjDetalleOrden=List_DetalleOrden.get(i)
doublePrecioTotal=ObjDetalleOrden.getCantidad()*
ObjDetalleOrden.getPreciounitario()
ObjDetalleOrden.setPreciototal(PrecioTotal)
SubTotal_Orden=SubTotal_Orden+PrecioTotal
}

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

3.2.3.Interaccinconelcomponentedeaccesoadatos.

Comobiensabemoslalgicadelnegocionosolointeractaconlasentidadessinotambinconlabasededatos.Lanecesidad
surgedebidoaqueunavezprocesadalainformacinyaplicadalaspolticasdelnegocio,senecesitaposiblementeguardary/o
almacenarestinformacinenunabasededatosparalocualharemosusoyanosolodelasentidadessinotambindelacapade
accesodedatos.

Paraunamejorcomprensin,veamoslosejemplosanteriormenteplanteados,yaejecutndose:

publicstaticvoidmain(String[]args)throwsIOException{
//ElegimoselEmpleado:(5)DIEGOANDRADE
EntidadEmpleadoObjEmpleado=newEntidadEmpleado()
ObjEmpleado.setIdempleado(5)
//ElegimoselCliente:(2)MARIOSANCHEZ
EntidadClienteObjCliente=newEntidadCliente()
ObjCliente.setIdcliente(2)
//CreamoselObjetoOrden
EntidadOrdenObjOrden=newEntidadOrden()
ObjOrden.setIdorden(11)
ObjOrden.setEntidadEmpleado(ObjEmpleado)
ObjOrden.setEntidadCliente(ObjCliente)
ObjOrden.setFechaorden(newDate())//FechadeHoy

//DETALLEDEORDENN01
//ElegimoselProducto:(10)BASEDEMAQUILLAJE
EntidadProductoObjProducto_01=newEntidadProducto()
ObjProducto_01.setIdproducto(10)
ObjProducto_01.setPreciounitario(14.70)
ObjProducto_01.setExistencia(40)

//CreamoselObjetoDetalleOrden01
EntidadDetalleOrdenObjDetalleOrden_01=newEntidadDetalleOrden()
ObjDetalleOrden_01.setIddetalleorden(18)
ObjDetalleOrden_01.setEntidadOrden(ObjOrden)
ObjDetalleOrden_01.setEntidadProducto(ObjProducto_01)
ObjDetalleOrden_01.setNumeroitem(1)
ObjDetalleOrden_01.setPreciounitario(14.70)
ObjDetalleOrden_01.setCantidad(30)
//


//CreamoslaListadeDetalledeOrden
List<EntidadDetalleOrden>ListaDetalleOrden=newArrayList()
ListaDetalleOrden.add(ObjDetalleOrden_01)
ListaDetalleOrden.add(ObjDetalleOrden_02)
ListaDetalleOrden.add(ObjDetalleOrden_03)
ObjOrden.setList_DetalleOrden(ListaDetalleOrden)
//CreamoselObjetoLogicadeOrden
LogicaOrdenlogOrden=newLogicaOrden()
if(logOrden.Registrar(ObjOrden)){
System.out.println("Laordenseregistrocorrectamente")
}else{
System.out.println("ERROR:Laordennoseregistro,verifiquelosdatos
ingresados")
}
}



//DETALLEDEORDENN02
//ElegimoselProducto:(13)SOMBRADEOJOS
EntidadProductoObjProducto_02=newEntidadProducto()
ObjProducto_02.setIdproducto(13)
ObjProducto_02.setPreciounitario(9.80)
ObjProducto_02.setExistencia(100)
//CreamoselObjetoDetalleOrden02
https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
EntidadDetalleOrdenObjDetalleOrden_02=newEntidadDetalleOrden()
ObjDetalleOrden_02.setIddetalleorden(19)
ObjDetalleOrden_02.setEntidadOrden(ObjOrden)
ObjDetalleOrden_02.setEntidadProducto(ObjProducto_02)
ObjDetalleOrden_02.setNumeroitem(2)
ObjDetalleOrden_02.setPreciounitario(9.80)
ObjDetalleOrden_02.setCantidad(20)
//
//DETALLEDEORDENN03
//ElegimoselProducto:(11)RIMMEL
EntidadProductoObjProducto_03=newEntidadProducto()
ObjProducto_03.setIdproducto(11)
ObjProducto_03.setPreciounitario(12.90)
ObjProducto_03.setExistencia(20)
//CreamoselObjetoDetalleOrden03
EntidadDetalleOrdenObjDetalleOrden_03=newEntidadDetalleOrden()
ObjDetalleOrden_03.setIddetalleorden(20)
ObjDetalleOrden_03.setEntidadOrden(ObjOrden)
ObjDetalleOrden_03.setEntidadProducto(ObjProducto_03)
ObjDetalleOrden_03.setNumeroitem(3)
ObjDetalleOrden_03.setPreciounitario(12.90)
ObjDetalleOrden_03.setCantidad(15)
//

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

ReferenciasBibliogrficas

Hugor (2013, 11 de Julio). Conceptos de Programacin y atributos de clase [Web log post]. Recuperado
dehttp://talent.paperblog.com/guiapythonconceptosdeprogramacionyatributosdeclase2016454/

Java Ya. (2012). Declaracin de una clase y definicin de objetos. Argentina: Java Ya Publicacin. Recuperado
desdehttp://www.javaya.com.ar/detalleconcepto.php?codigo=87

Microsoft. (2007). Conceptos bsicos sobre base de datos. New York: Publicacin de Microsoft. Recuperado
desdehttp://office.microsoft.com/esmx/accesshelp/conceptosbasicossobrebasesdedatosHA010064450.aspx

Universidad Don Bosco. (2014). Base de Datos. El Salvador: Publicacin de Universidad de Bosco. Recuperado
desdehttp://www.udb.edu.sv/udb/archivo/guia/informaticaingenieria/basededatosi/2014/i/guia6.pdf

Gajardo(2013,1dediciembre).Join[Weblogpost].Recuperadodehttp://vgajardo2013.blogspot.com/

DeleteSQL. (2007). Insert, update y delete SQL. New York: Publicacin de DeleteSQL. Recuperado
desdehttp://deletesql.com/viewtopic.php?f=5&t=24

Declaracin de una clase y definicin de objetos. Mueva York: Daedalus Publicacin. Recuperado
desdehttp://www.daedalus.es/quetecnologiasnosdiferencian/inteligenciadenegocio/reglasdenegocio/

Martn (2012). Framework lgeros y lgica del negocio [Web log post]. Recuperado
dehttp://www.joseluismartin.info/articles/logica_de_negocio.php

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d

LecturasRecomendadas

Parasaberms

Ponemosatudisposicinyteinvitamosarevisardosinteresantesdocumentosqueteayudaranareforzaryampliarlostemasque
hemosestudiado,estoslosencontrarsenlabasededatoselibrosqueutilizanuestrauniversidad:

Documento1:ReglasdelnegocioenaplicacionessobrelaplataformadeJAVAEmpresarial.

URL:http://renia.cujae.edu.cu/index.php/revistacientifica/article/viewFile/Ing.%20Inform%C3%A1tica/pdf_13

Brevedescripcin:

EnlaactualidadhaaumentadolademandadeaplicacionesInformticasenelmarcoempresarial,porlocuallaindustria
desoftwaredebegarantizarquelasaplicacionesbrindenaltacalidadyrendimiento.

Enesteartculosepresentaunanuevametodologaparaeldesarrollodelacapadelgicadenegociosdeaplicacionesde
softwaresascomosedescribenlasherramientasnecesariasparalaaplicacindeestanuevametodologa.

Documento2:JavaconBasedeDatos

URL:http://alarcos.infcr.uclm.es/doc/ISOFTWAREI/transp_jdbc.pdf

Brevedescripcin:

Estedocumentonoshaceunrepasogeneralalovistoenestasemana,eldocumentosepresentademaneraminimalista,
sencillaperoricaencontenidos.SecentrabsicamenteenlaconexindeJavaalabasededatosatravsdesucontrolador
JDBC,suestndar,susclasesyalgunosejemplos.

https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531&currentorg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1