Documentos de Académico
Documentos de Profesional
Documentos de Cultura
a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
Mapaconceptualreferidoaltema
https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
3.1AccesoaDatos
https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 3/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 4/4
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&d
3.2LgicadeNegocios
https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 2/2
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1
2017624 https://www.aulauss.edu.pe/mod/scorm/player.php?a=33531¤torg=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¤torg=eXeSemana_352406c1c20afd8e37d2&scoid=768340&sesskey=5U5b2hlmeq&display= 1/1