diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java new file mode 100644 index 0000000..2929b09 --- /dev/null +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java @@ -0,0 +1,23 @@ +package com.lazyloading.configuracion; + +public enum ConstanteConfiguracion { + + CODIGO_RESULTADO_EXITO("com.lazyloading.configuracion.codigoresultadoexitoso"), + CODIGO_RESULTADO_ERROR("com.lazyloading.configuracion.codigoresultadoerror"), + MENSAJE_EJECUCION_EXITO("com.lazyloading.configuracion.mensajeejecucionexito"), + MENSAJE_EJECUCION_ERROR("com.lazyloading.configuracion.mensajeejecucionerror"), + NOMBRE_RESOURCE_BUNDLE_CONFIGURACION("com.lazyloading.configuracion.configuracion"); + + private String key; + + private ConstanteConfiguracion(String key) { + this.key = key; + } + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + +} diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java index 88585ad..94a814a 100644 --- a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java @@ -2,19 +2,17 @@ public enum ConstanteMensajes { - OBTENER_INTEGER("com.lazyloading.mensajes.excepcion.obtenerinteger"), - VERIFICAR_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarDiasElementos"), - VERIFICAR_ARRAY_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarArrayDiasElementos"), - VERIFICAR_VECES_UNO("com.lazyloading.mensajes.excepcion.verificarVecesUno"), - VERIFICAR_VECES_DOS("com.lazyloading.mensajes.excepcion.verificarVecesDos"), - VERIFICAR_CONTADOR_ARR_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarContadorArrDiasElementos"), - VERIFICAR_LISTA_ELEMENTOS_NULL("com.lazyloading.mensajes.excepcion.verificarListaElementosNull"), - VERIFICAR_LISTA_ELEMENTOS_VACIA("com.lazyloading.mensajes.excepcion.verificarListaVacia"), - VERIFICAR_ATRAS_LISTA_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarAtrasListaElementos"), - OBTENER_LINEA_IMPRESION("com.lazyloading.mensajes.excepcion.lineaimpresion"), - LISTA_JSON_NULL("com.lazyloading.mensajes.excepcion.listajsonnull"), - CLASE_ELEMENTO_JSON_NULL("com.lazyloading.mensajes.excepcion.claseelementojsonnull"), - ADAPTADOR_JSON_NULL("com.lazyloading.mensajes.excepcion.adaptadorjsonnull"); + DATOS_EJECUCION_NULL("com.lazyloading.mensajes.excepcion.datosejecucionnull"), + ERROR_INSERTAR_EJECUCION("com.lazyloading.mensajes.excepcion.errorinsertarejecucion"), + ERROR_INSERTAR_LINEAS_IMPRESION("com.lazyloading.mensajes.excepcion.errorinsertarlineasimpresion"), + ERROR_ADICIONAR_EJECUCION("com.lazyloading.mensajes.excepcion.erroradicionarejecucion"), + ERROR_INICIALIZAR_CONTEXTO("com.lazyloading.mensajes.excepcion.errorinicializarcontexto"), + ERROR_NUMERO_IDENTIFACION_EJECUCION("com.lazyloading.mensajes.excepcion.errornumeroidentificacionejecucion"), + ERROR_VALIDAR_FECHA_EJECUCION("com.lazyloading.mensajes.excepcion.errorvalidarfechaejecucion"), + ERROR_VALIDAR_LINEAS_IMPRESION("com.lazyloading.mensajes.excepcion.errorvalidarlineasimpresion"), + ERROR_PROCESAR_FECHA("com.lazyloading.mensajes.excepcion.errorprocesarfecha"), + ERROR_ROLLBACK_CONEXION_BD("com.lazyloading.mensajes.excepcion.errorrollbackconexionbd"), + DATOS_EJECUCION_VACIO("com.lazyloading.mensajes.excepcion.datosejecucionvacio"); private String key; diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java new file mode 100644 index 0000000..607f51a --- /dev/null +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java @@ -0,0 +1,105 @@ +package com.lazyloading.controlador; + +import com.lazyloading.configuracion.ConstanteConfiguracion; +import com.lazyloading.constante.ConstanteMensajes; +import com.lazyloading.dao.interfaz.EjecucionDAO; +import com.lazyloading.db.factoria.FactoriaEjecucionDAO; +import com.lazyloading.dto.RespuestaDTO; +import com.lazyloading.excepcion.ExcepcionControladorEjecucion; +import com.lazyloading.mensaje.UtilidadMensajes; +import com.lazyloading.modelo.Ejecucion; + +public class ControladorEjecucion implements IControladorEjecucion { + + @Override + public RespuestaDTO registrarEjecucion(String datosEjecucion) { + RespuestaDTO resultadoDTO = this.procesarResultadoExito(); + try { + this.validarDatosEjecucionNull(datosEjecucion); + this.validarDatosEjecucionVacio(datosEjecucion); + Ejecucion ejecucion = new Ejecucion(datosEjecucion); + this.validarEjecucion(ejecucion); + EjecucionDAO ejecucionDAO = FactoriaEjecucionDAO.getFactoriaEjecucionDAO().getEjecucionDAO(); + ejecucionDAO.adicionarEjecucion(ejecucion); + } catch (Exception ex) { + ex.printStackTrace(); + resultadoDTO = this.procesarResultadoError(); + } + return resultadoDTO; + } + + private RespuestaDTO procesarResultadoError() { + String resourceBundleConfiguracion = ConstanteConfiguracion.NOMBRE_RESOURCE_BUNDLE_CONFIGURACION.getKey(); + String codigoResultado = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.CODIGO_RESULTADO_ERROR.getKey()); + String mensajeError = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.MENSAJE_EJECUCION_ERROR.getKey()); + RespuestaDTO respuestaDTO = this.procesarResultado(codigoResultado, mensajeError); + return respuestaDTO; + } + + private RespuestaDTO procesarResultadoExito() { + String resourceBundleConfiguracion = ConstanteConfiguracion.NOMBRE_RESOURCE_BUNDLE_CONFIGURACION.getKey(); + String codigoResultado = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.CODIGO_RESULTADO_EXITO.getKey()); + String mensajeExito = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.MENSAJE_EJECUCION_EXITO.getKey()); + RespuestaDTO respuestaDTO = this.procesarResultado(codigoResultado, mensajeExito); + return respuestaDTO; + } + + private RespuestaDTO procesarResultado(String codigoResultado, String mensajeResultado) { + RespuestaDTO respuestaDTO = new RespuestaDTO(codigoResultado, mensajeResultado); + return respuestaDTO; + } + + private void validarEjecucion(Ejecucion ejecucion) { + this.validarNumeroIdentificacionEjecucion(ejecucion); + this.validarFechaEjecucion(ejecucion); + this.validarLineasImpresion(ejecucion); + } + + private void validarNumeroIdentificacionEjecucion(Ejecucion ejecucion) { + if(ejecucion.getNumeroIdentificacion() == null) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_NUMERO_IDENTIFACION_EJECUCION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarFechaEjecucion(Ejecucion ejecucion) { + if(ejecucion.getFecha() == null + || ejecucion.getFecha().toString().length() == 0) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_VALIDAR_FECHA_EJECUCION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarLineasImpresion(Ejecucion ejecucion) { + if(ejecucion.getListaLineaImpresion() == null + || ejecucion.getListaLineaImpresion().isEmpty()) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_VALIDAR_LINEAS_IMPRESION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarDatosEjecucionNull(String datosEjecucion) { + if(datosEjecucion == null) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_NULL.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } else if(datosEjecucion.isEmpty()) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_VACIO.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } + } + + private void validarDatosEjecucionVacio(String datosEjecucion) { + if(datosEjecucion.isEmpty()) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_NULL.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } + } +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java new file mode 100644 index 0000000..f734d29 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java @@ -0,0 +1,16 @@ +package com.lazyloading; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +public class FachadaHttpServlet extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException { + String datosEjecucion = request.getParameter("datosEjecucion"); + } +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java new file mode 100644 index 0000000..8f81a59 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java @@ -0,0 +1,78 @@ +package com.lazyloading.configuracion; + +import java.util.ResourceBundle; + +public final class UtilidadConfiguracionSistema { + + private static final String RES_BUNDLE_CONFIGURACION = "com.lazyloading.configuracion.configuracion"; + private static final String LENGUAJE = "com.lazyloading.configuracion.locale.lenguaje"; + private static final String PAIS = "com.lazyloading.configuracion.locale.pais"; + private static final String RES_BUNDLE_MENSAJES_BASE_NAME = "com.lazyloading.configuracion.locale.resbundlemensajesbasename"; + + private static final String SEPARADOR = "com.lazyloading.configuracion.tokenizacion.separador"; + private static final String REEMPLAZO = "com.lazyloading.configuracion.tokenizacion.reemplazo"; + private static final String UNIDAD_PESO = "com.lazyloading.configuracion.peso.unidadpeso"; + private static final String LOGGIN_PATH = "com.lazyloading.configuracion.logs.loggingpath"; + private static final String LOGGING_SYSTEM_PROPERTY = "com.lazyloading.configuracion.logs.logginsysproperty"; + + private UtilidadConfiguracionSistema() { + super(); + } + + public static String getResBundleMensajesBaseName() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String mensajesBaseName = resourceBundle.getString(RES_BUNDLE_MENSAJES_BASE_NAME); + return mensajesBaseName; + } + + public static String getLenguaje() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String lenguaje = resourceBundle.getString(LENGUAJE); + return lenguaje; + } + + public static String getPais() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String pais = resourceBundle.getString(PAIS); + return pais; + } + + public static String getSeparador() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String separador = resourceBundle.getString(SEPARADOR); + return separador; + } + + public static String getReemplazo() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String reemplazo = resourceBundle.getString(REEMPLAZO); + return reemplazo; + } + + public static String getUnidadPeso() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String unidadPeso = resourceBundle.getString(UNIDAD_PESO); + return unidadPeso; + } + + public static String getLoggingPath() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String loggingPath = resourceBundle.getString(LOGGIN_PATH); + return loggingPath; + } + + public static String getLoggingSystemProperty() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String loggingSystemProperty = resourceBundle.getString(LOGGING_SYSTEM_PROPERTY); + return loggingSystemProperty; + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java new file mode 100644 index 0000000..ee16cc8 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java @@ -0,0 +1,20 @@ +package com.lazyloading.constante; + +public enum ConstanteMensajes { + + DATOS_EJECUCION_NULL("com.lazyloading.mensajes.excepcion.datosejecucionnull"); + + private String key; + + private ConstanteMensajes(String key) { + this.key = key; + } + + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java new file mode 100644 index 0000000..c09c1ee --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java @@ -0,0 +1,5 @@ +package com.lazyloading.constante; + +public enum TipoConexionBD { + CONEXION_MYSQL; +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java new file mode 100644 index 0000000..bc6779f --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java @@ -0,0 +1,7 @@ +package com.lazyloading.controlador; + +public interface Controlador { + + public abstract void registrarEjecucion(String datosEjecucion); + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java new file mode 100644 index 0000000..60a148e --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java @@ -0,0 +1,15 @@ +package com.lazyloading.controlador; + +import com.lazyloading.dto.EjecucionDTO; +import com.lazyloading.utilidad.UtilidadValidadorFachadaHttpServlet; + +public class ControladorDatosEjecucion implements Controlador { + + @Override + public void registrarEjecucion(String datosEjecucion) { + UtilidadValidadorFachadaHttpServlet.validarDatosEjecucionNull(datosEjecucion); + UtilidadValidadorFachadaHttpServlet.validarDatosEjecucionVacio(datosEjecucion); + EjecucionDTO ejecucionDTO = new EjecucionDTO(); + ejecucionDTO.procesarEjecucion(datosEjecucion); + } +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java new file mode 100644 index 0000000..d8e947d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java @@ -0,0 +1,34 @@ +package com.lazyloading.db.conexion; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.Properties; + +public final class UtilidadConexionBD { + + public static Connection obtenerConexion(String url, Properties properties) + throws SQLException { + validarParametros(url, properties); + Connection conexionBD = + DriverManager.getConnection(url, properties); + return conexionBD; + } + + public static Connection obtenerConexion(String url, String user, String password) + throws SQLException { + validarParametros(url, user, password); + Connection conexionBD = + DriverManager.getConnection(url, user, password); + return conexionBD; + } + + private static void validarParametros(String url, Properties properties) { + // TODO Auto-generated method stub + } + + private static void validarParametros(String url, String user, String password) { + // TODO Auto-generated method stub + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java new file mode 100644 index 0000000..d38b0a0 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java @@ -0,0 +1,36 @@ +package com.lazyloading.db.constante; + +import com.lazyloading.mensaje.UtilidadMensajes; + +public enum ConstanteMySQLBD { + + MYSQL_HOST_ADDRESS("com.lazyloading.db.mysql.hostaddress"), + MYSQL_HOST_PORT("com.lazyloading.db.mysql.hostport"), + MYSQL_HOST_DATABASE("com.lazyloading.db.mysql.hostdatabase"), + MYSQL_USER("com.lazyloading.db.mysql.usuario"), + MYSQL_PASSWORD("com.lazyloading.db.mysql.password"), + MYSQL_URL_FORMAT("com.lazyloading.db.mysql.urlformat"); + + private String valor; + + private ConstanteMySQLBD(String valor) { + this.valor = valor; + } + + public String getValor() { + return valor; + } + public void setValor(String valor) { + this.valor = valor; + } + + public static String getURLCompleta() { + String urlFormat = UtilidadMensajes.buscarMensaje(MYSQL_URL_FORMAT.getValor()); + String urlCompleta = + String.format(urlFormat, MYSQL_HOST_ADDRESS.getValor(), + MYSQL_HOST_PORT.getValor(), + MYSQL_HOST_DATABASE.getValor()); + return urlCompleta; + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java new file mode 100644 index 0000000..9b3f669 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java @@ -0,0 +1,112 @@ +package com.lazyloading.dto; + +import java.io.Serializable; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import com.lazyloading.constante.TipoConexionBD; +import com.lazyloading.db.factoria.FactoriaConexionesBD; +import com.lazyloading.excepcion.ExcepcionConexionDTO; +import com.lazyloading.mensaje.UtilidadMensajes; + +public class ConexionDTO implements Comparable, Serializable { + + private Connection conexionBD; + private boolean disponible; + private TipoConexionBD tipoConexionBD; + + public boolean isDisponible() { + return disponible; + } + + public void setDisponible(boolean disponible) { + this.disponible = disponible; + } + + public Connection getConexionBD() { + return conexionBD; + } + + public void setConexionBD(Connection conexionBD) { + this.conexionBD = conexionBD; + } + + public TipoConexionBD getTipoConexionBD() { + return tipoConexionBD; + } + + public void setTipoConexionBD(TipoConexionBD tipoConexionBD) { + this.tipoConexionBD = tipoConexionBD; + } + + public void cerrarConexion() { + FactoriaConexionesBD factoriaConexionesDB = + FactoriaConexionesBD.getFactoriaConexionesBD(); + factoriaConexionesDB.cerrarConexion(this); + } + + public Statement obtenerStatement() throws SQLException { + this.validarConexionBD(); + Statement statement = conexionBD.createStatement(); + return statement; + } + + public PreparedStatement obtenerPreparedStatement(String sql) throws SQLException { + this.validarConexionBD(); + PreparedStatement preparedStatement = conexionBD.prepareStatement(sql); + return preparedStatement; + } + + @Override + public boolean equals(Object object) { + boolean resultado = false; + if(object instanceof ConexionDTO) { + ConexionDTO otraConexionDTO = (ConexionDTO) object; + Connection otraConexionBD = otraConexionDTO.getConexionBD(); + resultado = conexionBD.equals(otraConexionBD); + } + return resultado; + } + + @Override + public int hashCode() throws ExcepcionConexionDTO { + this.validarConexionBD(); + int resultado = conexionBD.hashCode() * 25 + 70; + return resultado; + } + + @Override + public int compareTo(ConexionDTO otraConexionDTO) { + byte resultado = 0; + if(otraConexionDTO == null) { + resultado = 1; + return resultado; + } + Connection otraConexionBD = otraConexionDTO.getConexionBD(); + resultado = this.validarHashCode(otraConexionBD); + return resultado; + } + + private void validarConexionBD() throws ExcepcionConexionDTO { + if(conexionBD == null) { + String key = "com.lazyloading.mensajes.excepcion.conexionbdnull"; + String mensaje = UtilidadMensajes.buscarMensaje(key); + throw new ExcepcionConexionDTO(mensaje); + } + } + + private byte validarHashCode(Connection otraConexionBD) { + if(otraConexionBD == null) { + return 1; + } else if(conexionBD.hashCode() == otraConexionBD.hashCode()) { + return 0; + } else if(conexionBD.hashCode() > otraConexionBD.hashCode()) { + return 1; + } else { + return -1; + } + } +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java new file mode 100644 index 0000000..c48575d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java @@ -0,0 +1,99 @@ +package com.lazyloading.db.factoria; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Locale; +import java.util.Set; +import java.util.TreeSet; + +import com.lazyloading.db.conexion.UtilidadConexionBD; +import com.lazyloading.db.constante.ConstanteMySQLBD; +import com.lazyloading.dto.ConexionDTO; +import com.lazyloading.excepcion.ExcepcionFactoriaConexionesBD; +import com.lazyloading.factoria.FactoriaLocale; +import com.lazyloading.mensaje.UtilidadMensajes; + +public class FactoriaConexionesBD { + + private Set listaConexionesMySQL; + + private static FactoriaConexionesBD factoriaConexionesDB; + + private FactoriaConexionesBD() { + listaConexionesMySQL = new TreeSet(); + } + + public static FactoriaConexionesBD getFactoriaConexionesBD() { + if(factoriaConexionesDB == null) { + factoriaConexionesDB = new FactoriaConexionesBD(); + } + return factoriaConexionesDB; + } + + public ConexionDTO obtenerConexionMySQL() throws ExcepcionFactoriaConexionesBD { + ConexionDTO conexionDTODisponible = null; + this.validarListaConexiones(); + for(ConexionDTO conexionDTO : listaConexionesMySQL) { + if(conexionDTO.isDisponible()) { + conexionDTODisponible = conexionDTO; + } + } + this.validarConexionDTODisponible(conexionDTODisponible); + conexionDTODisponible.setDisponible(false); + return conexionDTODisponible; + } + + public void cerrarConexion(ConexionDTO conexionDTO) { + this.validarConexionDTO(conexionDTO); + conexionDTO.setDisponible(true); + } + + private void validarListaConexiones() { + if(listaConexionesMySQL.isEmpty()) { + try { + this.crearConexionMySQL(); + } catch (SQLException ex) { + String key = "com.lazyloading.mensajes.excepcion.validarlistaconexiones"; + String mensaje = UtilidadMensajes.buscarMensaje(key); + throw new ExcepcionFactoriaConexionesBD(mensaje, ex); + } + } + } + + private void crearConexionMySQL() throws SQLException { + String url = ConstanteMySQLBD.getURLCompleta(); + String usuario = ConstanteMySQLBD.MYSQL_USER.getValor(); + String clave = ConstanteMySQLBD.MYSQL_PASSWORD.getValor(); + Connection conexionBD = UtilidadConexionBD.obtenerConexion(url, usuario, clave); + ConexionDTO conexionDTO = this.crearConexionDTO(conexionBD); + this.listaConexionesMySQL.add(conexionDTO); + } + + private ConexionDTO crearConexionDTO(Connection conexionJDBC) { + ConexionDTO conexionDTO = new ConexionDTO(); + conexionDTO.setConexionBD(conexionJDBC); + conexionDTO.setDisponible(true); + return conexionDTO; + } + + private void validarConexionDTODisponible(ConexionDTO conexionDTO) + throws ExcepcionFactoriaConexionesBD { + if(conexionDTO == null) { + String key = "com.lazyloading.mensajes.excepcion.obtenerconexionmysqlnull"; + Locale locale = FactoriaLocale.getFactoriaLocale().getLocale(); + String mensaje = UtilidadMensajes.buscarMensaje(key, locale); + throw new ExcepcionFactoriaConexionesBD(mensaje); + } + } + + private void validarConexionDTO(ConexionDTO conexionDTO) + throws ExcepcionFactoriaConexionesBD { + if(conexionDTO == null) { + String key = "com.lazyloading.mensajes.excepcion.cerrarconexionnull"; + Locale locale = FactoriaLocale.getFactoriaLocale().getLocale(); + String mensaje = UtilidadMensajes.buscarMensaje(key, locale); + throw new ExcepcionFactoriaConexionesBD(mensaje); + } + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java new file mode 100644 index 0000000..b80adf7 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java @@ -0,0 +1,45 @@ +package com.lazyloading.dao.implementacion; + +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + +import com.lazyloading.dao.interfaz.EjecucionDAO; +import com.lazyloading.db.factoria.FactoriaConexionesBD; +import com.lazyloading.dto.ConexionDTO; +import com.lazyloading.dto.EjecucionDTO; + +public class EjecucionMySQLDAO implements EjecucionDAO { + + @Override + public void adicionarEjecucion(EjecucionDTO ejecucionDTO) { + FactoriaConexionesBD factoriaConexionesBD = FactoriaConexionesBD.getFactoriaConexionesBD(); + ConexionDTO conexionDTO = factoriaConexionesBD.obtenerConexionMySQL(); + String insercionSQL = ""; + try { + PreparedStatement preparedStatement = conexionDTO.obtenerPreparedStatement(insercionSQL); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Override + public EjecucionDTO buscarEjecucion(String codigoEjecucion) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void actualizarEjecucion(EjecucionDTO ejecucionDTO) { + // TODO Auto-generated method stub + + } + + @Override + public void eliminarEjecucion(EjecucionDTO ejecucionDTO) { + // TODO Auto-generated method stub + + } + +} diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java new file mode 100644 index 0000000..4992e58 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java @@ -0,0 +1,15 @@ +package com.lazyloading.dao.interfaz; + +import com.lazyloading.dto.EjecucionDTO; + +public interface EjecucionDAO { + + public abstract void adicionarEjecucion(EjecucionDTO ejecucionDTO); + + public abstract EjecucionDTO buscarEjecucion(String codigoEjecucion); + + public abstract void actualizarEjecucion(EjecucionDTO ejecucionDTO); + + public abstract void eliminarEjecucion(EjecucionDTO ejecucionDTO); + +} diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties new file mode 100644 index 0000000..513a29e --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties @@ -0,0 +1,10 @@ +com.lazyloading.configuracion.codigoresultadoexitoso = 0 +com.lazyloading.configuracion.codigoresultadoerror = 1 +com.lazyloading.configuracion.mensajeejecucionexito = La persistencia de la ejecucion fue exitosa +com.lazyloading.configuracion.mensajeejecucionerror = ERROR: La persistencia de la ejecucion fue fallida + +com.lazyloading.configuracion.locale.lenguaje = es +com.lazyloading.configuracion.locale.pais = CO +com.lazyloading.configuracion.locale.resbundlemensajesbasename = com.lazyloading.mensaje.mensajes +com.lazyloading.configuracion.tokenizacion.separador = , +com.lazyloading.configuracion.logs.loggingpath = diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties new file mode 100644 index 0000000..e053a3d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties @@ -0,0 +1,2 @@ +com.lazyloading.db.mysql.insertarejecucion = INSERT INTO EJECUCION(NUMERO_ID,FECHA) VALUES (?,?) +com.lazyloading.db.mysql.insertarlineaimpresion = INSERT INTO LINEA_EJECUCION(DESCRIPCION,ID_EJECUCION,FECHA_EJECUCION) VALUES (?,?,?) diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/mensaje/mensajes_es_CO.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/mensaje/mensajes_es_CO.properties new file mode 100644 index 0000000..83ea3e1 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/mensaje/mensajes_es_CO.properties @@ -0,0 +1,10 @@ +com.lazyloading.mensajes.excepcion.datosejecucionnull = ERROR: Los datos relativos a la ejecucion apuntan a un valor null +com.lazyloading.mensajes.excepcion.errorinsertarejecucion = ERROR: Ocurrio un error al insertar una ejecucion en la base de datos +com.lazyloading.mensajes.excepcion.errorinsertarlineasimpresion = ERROR: Ocurrio un error al insertar las lineas de impresion +com.lazyloading.mensajes.excepcion.errorrollbackconexionbd = ERROR: Ocurrio un error al realizar el rollback de los cambios implementados en la base de datos +com.lazyloading.mensajes.excepcion.errorinicializarcontexto = ERROR: Ocurrio un error al inicializar el contexto relacionado con el pool de conexiones a la base de datos +com.lazyloading.mensajes.excepcion.erroradicionarejecucion = ERROR: Ocurrio un error al adicionar la ejecucion en la base de datos +com.lazyloading.mensajes.excepcion.errornumeroidentificacionejecucion = ERROR: El numero de identificacion apunta a un valor null +com.lazyloading.mensajes.excepcion.errorvalidarfechaejecucion = ERROR: La fecha de ejecucion tiene un valor invalido (apunta a un valor null o esta vacia) +com.lazyloading.mensajes.excepcion.errorvalidarlineasimpresion = ERROR: La lista de lineas de impresion es invalida (null o vacia) +com.lazyloading.mensajes.excepcion.datosejecucionvacio = ERROR: Los datos relativos a la ejecucion se encuentran vacios diff --git a/workspaces/lazy_loading_example_input.txt b/workspaces/lazy_loading_example_input.txt new file mode 100644 index 0000000..d7aa422 --- /dev/null +++ b/workspaces/lazy_loading_example_input.txt @@ -0,0 +1,40 @@ +5 +4 +30 +30 +1 +1 +3 +20 +20 +20 +11 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +6 +9 +19 +29 +39 +49 +59 +10 +32 +56 +76 +8 +44 +60 +47 +85 +71 +91 \ No newline at end of file