All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.josecarlosbran.JBSqlUtils.DataBase.CommonsMethods Maven / Gradle / Ivy

Go to download

JBSqlUtils es un ORM desarrollado en java por José Carlos Alfredo Bran Aguirre, que permite gestionar BD's SQLite, MySQL, MariaDB, PostgreSQL y SQLServer, de una manera fácil y rápida sin interrumpir la ejecución del hilo principal del programa, lo cual la hace un potente ORM, por medio del cual tendrá acceso a un CRUD, configurando únicamente la conexión del modelo, los atributos que posee la tabla en BD's cómo variables que pertenecerán al modelo en su aplicación. JBSqlUtils también proporciona un potente generador de instrucciones SQL que le permitirá crear o eliminar una tabla, insertar, seleccionar, actualizar o eliminar registros de una tabla en su BD's sin necesidad de instanciar un modelo cómo tal, únicamente tendrá que configurar previamente la conexión a su BD's. Lo cual la hace un potente ORM para aplicaciones android y sistemas empresariales que tengan la necesidad de poder conectarse a alguna de estas 4 tipos de BD's, cabe mencionar que para ello utiliza el SQLite JDBC de org.xerial, org.postgresql, mysql y com.microsoft.sqlserver. Para mayor información, consultar el enlace del proyecto

The newest version!
package io.github.josecarlosbran.JBSqlUtils.DataBase;

import io.github.josecarlosbran.JBSqlUtils.Enumerations.Operator;
import io.github.josecarlosbran.JBSqlUtils.Exceptions.ValorUndefined;
import io.github.josecarlosbran.JBSqlUtils.Utilities.Column;

import java.util.List;
import java.util.Objects;

/**
 * @author Jose Bran
 * Clase que brinda acceso a la logica de los metodos comunes que comparte mas de una clase a extender en comun
 */
public class CommonsMethods {
    /**
     * Constructor por default de la clase CommonsMethods, que inicializa la clase
     */
    protected CommonsMethods() {
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    /**
     * Retorna un objeto del tipo AND que permite agregar esta expresión a la sentencia SQL
     *
     * @param columna           Columna a evaluar dentro de la sentencia AND
     * @param operador          Operador con el cual se evaluara la columna
     * @param valor             Valor contra el que se evaluara la columna
     * @param sql               Sentencia SQL a la que se agregara la apertura de parentecis
     * @param modelo            Modelo que invocara los métodos de esta clase
     * @param parametros        Lista de parametros a ser agregados a la sentencia SQL
     * @param getPropertySystem Indica si el modelo obtendra las propiedades de conexión de las propiedades del sistema
     * @return objeto del tipo AND que permite agregar esta expresión a la sentencia SQL
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected  And and(String columna, Operator operador, Object valor, String sql, T modelo, List parametros, Boolean getPropertySystem) throws ValorUndefined {
        if (Objects.isNull(modelo)) {
            return new And(sql, columna, operador, valor, parametros);
        } else {
            if (!getPropertySystem) {
                And and = new And(sql, columna, operador, valor, modelo, parametros, false);
                return and;
            }
            return new And(sql, columna, operador, valor, modelo, parametros);
        }
    }

    /**
     * Retorna un objeto del tipo OR que permite agregar esta expresión a la sentencia SQL
     *
     * @param columna           Columna a evaluar dentro de la sentencia OR
     * @param operador          Operador con el cual se evaluara la columna
     * @param valor             Valor contra el que se evaluara la columna
     * @param sql               Sentencia SQL a la que se agregara la apertura de parentecis
     * @param modelo            Modelo que invocara los métodos de esta clase
     * @param parametros        Lista de parametros a ser agregados a la sentencia SQL
     * @param getPropertySystem Indica si el modelo obtendra las propiedades de conexión de las propiedades del sistema
     * @return objeto del tipo OR que permite agregar esta expresión a la sentencia SQL
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected  Or or(String columna, Operator operador, Object valor, String sql, T modelo, List parametros, Boolean getPropertySystem) throws ValorUndefined {
        if (Objects.isNull(modelo)) {
            return new Or(sql, columna, operador, valor, parametros);
        } else {
            if (!getPropertySystem) {
                Or or = new Or(sql, columna, operador, valor, modelo, parametros, false);
                return or;
            }
            return new Or(sql, columna, operador, valor, modelo, parametros);
        }
    }

    /**
     * @param operatorPrev      Operador a colocar antes de la apertura de parentecis
     * @param columna           Columna a evaluar dentro de la sentencia AND
     * @param operador          Operador con el cual se evaluara la columna
     * @param valor             Valor contra el que se evaluara la columna
     * @param sql               Sentencia SQL a la que se agregara la apertura de parentecis
     * @param modelo            Modelo que invocara los métodos de esta clase
     * @param parametros        Lista de parametros a ser agregados a la sentencia SQL
     * @param getPropertySystem Indica si el modelo obtendra las propiedades de conexión de las propiedades del sistema
     * @return Retorna un objeto OpenParentecis el cual proporciona acceso a los métodos necesarios
     * para filtrar de una mejor manera nuestra consulta, No olvide llamar al metodo close parentecis cuando
     * haya finalizado la logica dentro de sus parentecis
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected  openParentecis openParentecis(Operator operatorPrev, String columna, Operator operador, Object valor, String sql, T modelo, List parametros, Boolean getPropertySystem) throws ValorUndefined {
        if (Objects.isNull(modelo)) {
            if (Objects.isNull(operatorPrev)) {
                return new openParentecis(sql, parametros, columna, operador, valor);
            } else {
                return new openParentecis(sql, parametros, operatorPrev, columna, operador, valor);
            }
        } else {
            if (Objects.isNull(operatorPrev)) {
                if (!getPropertySystem) {
                    return new openParentecis(sql, modelo, parametros, columna, operador, valor, false);
                }
                return new openParentecis(sql, modelo, parametros, columna, operador, valor);
            } else {
                if (!getPropertySystem) {
                    return new openParentecis(sql, modelo, parametros, operatorPrev, columna, operador, valor, false);
                }
                return new openParentecis(sql, modelo, parametros, operatorPrev, columna, operador, valor);
            }
        }
    }

    /**
     * Agrega la posibilidad de realizar un cierre de parentecis dentro de la logica de nuestra sentencia SQL
     *
     * @param operatorPost      Operador a colocar despues del cierre de parentecis
     * @param sql               Sentencia SQL a la que se agregara la apertura de parentecis
     * @param modelo            Modelo que invocara los métodos de esta clase
     * @param parametros        Lista de parametros a ser agregados a la sentencia SQL
     * @param getPropertySystem Indica si el modelo obtendra las propiedades de conexión de las propiedades del sistema
     * @return Retorna un objeto closeParentecis, el cual da acceso al resto de métodos que podemos llamar.
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected  closeParentecis closeParentecis(Operator operatorPost, String sql, T modelo, List parametros, Boolean getPropertySystem) throws ValorUndefined {
        if (Objects.isNull(modelo)) {
            if (Objects.isNull(operatorPost)) {
                return new closeParentecis(sql, parametros);
            } else {
                return new closeParentecis(sql, parametros, operatorPost);
            }
        } else {
            if (Objects.isNull(operatorPost)) {
                if (!getPropertySystem) {
                    closeParentecis close = new closeParentecis(sql, modelo, parametros, false);
                    return close;
                }
                return new closeParentecis(sql, modelo, parametros);
            } else {
                if (!getPropertySystem) {
                    return new closeParentecis(sql, modelo, parametros, operatorPost, false);
                }
                return new closeParentecis(sql, modelo, parametros, operatorPost);
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy