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

io.github.josecarlosbran.JBSqlUtils.DataBase.Take 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!
/***
 * Copyright (C) 2022 El proyecto de código abierto JBSqlUtils de José Bran
 *
 * Con licencia de Apache License, Versión 2.0 (la "Licencia");
 * no puede usar este archivo excepto de conformidad con la Licencia.
 * Puede obtener una copia de la Licencia en
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * A menos que lo exija la ley aplicable o se acuerde por escrito, el software
 * distribuido bajo la Licencia se distribuye "TAL CUAL",
 * SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas.
 * Consulte la Licencia para conocer el idioma específico que rige los permisos y
 * limitaciones bajo la Licencia.
 */
package io.github.josecarlosbran.JBSqlUtils.DataBase;

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

import java.util.List;

/**
 * Clase que proporciona la logica para tomar una cantidad de resultados, siendo esa cantidad el limite trasladado como
 * parametro para el constructor.
 *
 * @author Jose Bran
 */
public class Take extends MethodsTake {
    /**
     * Constructor que recibe como parametro:
     *
     * @param sql        Sentencia SQL a la cual se agregara la logica del limite.
     * @param limite     Entero que representa la cantidad maxima de valores recuperados.
     * @param modelo     Modelo que solicita la creación de esta clase
     * @param parametros Lista de parametros a ser agregados a la sentencia SQL
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected Take(String sql, int limite, T modelo, List parametros) throws ValorUndefined {
        super();
        if (limite <= 0) {
            throw new ValorUndefined("El Limite proporcionado es 0 o inferior, por lo cual no se puede" +
                    "realizar la consulta a BD's");
        }
        this.parametros = parametros;
        this.modelo = modelo;
        this.sql = sql + "LIMIT " + limite;
    }

    /**
     * Constructor que recibe como parametro:
     *
     * @param sql               Sentencia SQL a la cual se agregara la logica del limite.
     * @param limite            Entero que representa la cantidad maxima de valores recuperados.
     * @param modelo            Modelo que solicita la creación 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
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected Take(String sql, int limite, T modelo, List parametros, Boolean getPropertySystem) throws ValorUndefined {
        super(getPropertySystem);
        if (limite <= 0) {
            throw new ValorUndefined("El Limite proporcionado es 0 o inferior, por lo cual no se puede" +
                    "realizar la consulta a BD's");
        }
        this.parametros = parametros;
        this.modelo = modelo;
        this.sql = sql + "LIMIT " + limite;
    }

    /**
     * Constructor que recibe como parametro:
     *
     * @param sql        Sentencia SQL a la cual se agregara la logica del limite.
     * @param limite     Entero que representa la cantidad maxima de valores recuperados.
     * @param parametros Lista de parametros a ser agregados a la sentencia SQL
     * @throws ValorUndefined Lanza esta Excepción si la sentencia sql proporcionada esta vacía o es Null
     */
    protected Take(String sql, int limite, List parametros) throws ValorUndefined {
        super();
        if (limite <= 0) {
            throw new ValorUndefined("El Limite proporcionado es 0 o inferior, por lo cual no se puede" +
                    "realizar la consulta a BD's");
        }
        this.parametros = parametros;
        this.sql = sql + " LIMIT " + limite;
    }
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////

    /**
     * Obtiene una lista de modelos que coinciden con la busqueda realizada por medio de la consulta SQL
     * proporcionada
     *
     * @param  Definición del procedimiento que indica que cualquier clase podra invocar el método.
     * @return Retorna una lista de modelos que coinciden con la busqueda realizada por medio de la consulta SQL
     * proporcionada
     * @throws Exception Si sucede una excepción en la ejecución asyncrona de la sentencia en BD's
     *                   captura la excepción y la lanza en el hilo principal
     */
    public  List get() throws Exception {
        return (List) super.getAll((T) this.modelo, this.sql, this.parametros);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy