ORM JBSqlUtils es un ORM desarrollado en java por José Carlos Alfredo Bran Aguirre, que permite gestionar BD's SQLite, MySQL, 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.
Para mayor información sobre cómo utilizar JBSqlUtils desde Ionic visitar el siguiente enlace: https://github.com/Jbranadev/capacitor-jbrandev-jbsqlutils/blob/main/README.md
Para mayor información sobre cómo utilizar JBSqlUtils desde Java visitar el siguiente enlace: https://github.com/Jbranadev/JBSqlUtils/blob/master/Readme.md
JBSqlUtils actualmente está en una etapa de desarrollo continuo, por lo cual sus observaciones y recomendaciones, son bienvenidas para mejorar el proyecto.
Para poder utilizar JBSqlUtils en Ionic es importante realizar la siguiente configuración en su aplicación.
- Ya incluido JBSqlUtils en su aplicación, en android studio, visualizar los archivos en la vista Project, expandiendo el modulo capacitor-jbrandev-jbsqlutils, copiar la carpeta libs a la carpeta principal de su aplicación, de modo que quede en el mismo nivel que la carpeta src, como lo muestra la siguiente imagen.
- Una vez realizado el paso 1, abrir el archivo build.gradle, modificarlo para que contenga la configuración descrita en la siguiente imagen, agregamos lo filtros ndk dentro de la defaultConfig de nuestra aplicación y los sourceSets en el mismo nivel que la defaultConfig.
npm install capacitor-jbrandev-jbsqlutils
npx cap sync
dropTableIfExist(...)
createTable(...)
insertInto(...)
update(...)
delete(...)
select(...)
- Interfaces
- Enums
dropTableIfExist(droptableOptions: DropTableOptions) => Promise<DropTableResult>
Elimina la tabla especificada como parametro
Param | Type | Description |
---|---|---|
droptableOptions |
DropTableOptions |
Nombre de la tabla a eliminar |
Returns: Promise<DropTableResult>
createTable(createtableOptions: CreateTableOptions) => Promise<CreateTableResult>
Crea la tabla especificada como parametro
Param | Type | Description |
---|---|---|
createtableOptions |
CreateTableOptions |
Definicion de la tabla a crear |
Returns: Promise<CreateTableResult>
insertInto(insertOptions: InsertOptions) => Promise<InsertResult>
Inserta un nuevo registro en la tabla proporcionada con los valores indicados en insertOptions
Param | Type | Description |
---|---|---|
insertOptions |
InsertOptions |
Tabla sobre la cual se realizara el Insert y los Valores a insertar |
Returns: Promise<InsertResult>
update(updateOptions: UpdateOptions) => Promise<UpdateResult>
Actualiza las columnas de la tabla especificada en updateOptions de acuerdo a la logica proporcionada
Param | Type | Description |
---|---|---|
updateOptions |
UpdateOptions |
Definición de la tabla a actualizar |
Returns: Promise<UpdateResult>
delete(deleteOptions: DeleteOptions) => Promise<DeleteResult>
Elimina los registros de la tabla especificada de acuerdo a la logica proporcionada
Param | Type | Description |
---|---|---|
deleteOptions |
DeleteOptions |
Definición de la logica a aplicar para eliminar los registros de la tabla proporcionada |
Returns: Promise<DeleteResult>
select<T>(selectOptions: SelectOptions) => Promise<{ 'rows': T[]; }>
Obtiene los registros del tipo de dato proporcionado de la tabla especificada en el objeto selectOptions
Param | Type | Description |
---|---|---|
selectOptions |
SelectOptions |
Define la logica de la sentencia Select a ejecutar |
Returns: Promise<{ rows: T[]; }>
Resultado del metodo DropTableIfExist
Prop | Type | Description |
---|---|---|
execute |
boolean |
True si la tabla fue eliminada en BD's, False si la tabla no existe en BD's o si sucede algun problema al ejecutar la sentencia SQL. |
Opciones disponibles a envíar en el metodo DropTableIfExist
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla a eliminar |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils
Prop | Type | Description |
---|---|---|
dataBaseType |
DataBase |
Tipo de BD's a la cual se estara conectando el Modelo, los tipos disponibles son MySQL, SQLServer, PostgreSQL, SQLite. |
dataBase |
string |
Nombre de la Base de Datos a la que se conectara el modelo. |
port |
string |
Puerto en el cual se encuentra escuchando la BD's a la cual se pegara JBSqlUtils este campo es obligatorio para conectarse a MySQL, SQLServer o PostgreSQL |
host |
string |
Host en el cual se encuentra la BD's a la que nos queremos conectar. este campo es obligatorio para conectarse a MySQL, SQLServer o PostgreSQL |
user |
string |
Usuario con el cual el JBSqlUtils se conectara a la BD's. este campo es obligatorio para conectarse a MySQL, SQLServer o PostgreSQL |
password |
string |
Contraseña del usuario con el cual JBSqlUtils se conectara a la BD's. este campo es obligatorio para conectarse a MySQL, SQLServer o PostgreSQL |
Resultado del metodo createTable
Prop | Type | Description |
---|---|---|
execute |
boolean |
True si la tabla a sido creada, false si la tabla ya existe en BD's o si sucede un error al momento de ejecutar la sentencia SQL |
Representación de la tabla a crear en BD's a traves del metodo createTable
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla a crear |
columnas |
Column[] |
Array de Columnas que tendra la tabla al momento de ser creada en BD's |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Representación de una columna a crear en BD's
Prop | Type | Description |
---|---|---|
name |
string |
Nombre de la columna |
default_value |
string |
Indica el valor por default que tendra la columna en BD's Es importante que para que este sea efectivo, agregar en las restriccions, la Constraint.DEFAULT. |
dataTypeSQL |
DataType |
DataType que indica el tipo de dato SQL que almacenara la columna. |
restriccions |
Constraint[] |
Array que Indica las restricciones SQL que tendra este campo. |
Define el resultado de insertar un registro en BD's
Prop | Type | Description |
---|---|---|
rows_insert |
number |
Cantidad de filas que se han visto afectadas al ejecutar la sentencia SQL. |
Define la tabla sobre la cual se realizara el Insert y los valores a insertar
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla sobre la que se efectuara el Insert |
values |
ValuesInsert[] |
Array de valores a insertar en la tabla. |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Define el valor a insertar y en que columna
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna en la que se insertara el valor proporcionado |
value |
any |
Valor a insertar |
Define el resultado de actualizar registros en BD's
Prop | Type | Description |
---|---|---|
rows_update |
number |
Cantidad de filas que se han visto afectadas al ejecutar la sentencia SQL. |
Define las columnas que seran actualizadas en la tabla especificada.
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla a actualizar |
valueUpdate |
ValueUpdate |
Columnas a actualizar |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Define la columna a actualizar con el valor proporcionado en la tabla especificada
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna a actualizar |
value |
any |
Valor a setear en la columna |
andValueUpdate |
ValueUpdate |
Agrega la capacidad de poder actualizar el valor de otra columna en la misma sentencia Update |
where |
Where |
Agrega la logica de un filtro where a la actualización de registros en BD's |
Proporciona la logica de una sentencia Where sobre la información que contiene esta interface, añadiendo la capacidad de poder filtrar por medio de las sentencias AND, OR, TAKE Y ORDER BY
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna sobre la cual se evaluara la sentencia WHERE |
operator |
Operator |
Operador sobre el cual se evalura la columna respecto al valor proporcionado |
value |
any |
Valor contra el que se evaluara la columna |
and |
And |
Agrega la logica de una sentencia And sobre la información proporcionada. |
or |
Or |
Agrega la logica de una sentencia Or sobre la información proporcionada. |
orderBy |
OrderBy |
Tipo de ordenamiento que deseamos se aplique al realizar una sentencia con filtro where |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
openParentecis |
OpenParentesis |
Puede aperturar un parentecis para filtrar de una mejor manera los registros |
closeParentecis |
CloseParentesis |
Puede cerrar un parentecis para filtrar de una mejor manera los registros |
Proporciona la logica de una sentencia And sobre la información que contiene esta interface, añadiendo la capacidad de poder filtrar por medio de las sentencias AND, OR, TAKE Y ORDER BY
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna sobre la cual se evaluara la sentencia AND |
operator |
Operator |
Operador sobre el cual se evalura la columna respecto al valor proporcionado |
value |
any |
Valor contra el que se evaluara la columna |
and |
And |
Agrega la logica de una sentencia And sobre la información proporcionada. |
or |
Or |
Agrega la logica de una sentencia Or sobre la información proporcionada. |
orderBy |
OrderBy |
Tipo de ordenamiento que deseamos se aplique al realizar una sentencia con filtro where |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
openParentecis |
OpenParentesis |
Puede aperturar un parentecis para filtrar de una mejor manera los registros |
closeParentecis |
CloseParentesis |
Puede cerrar un parentecis para filtrar de una mejor manera los registros |
Proporciona la logica de una sentencia Or sobre la información que contiene esta interface, añadiendo la capacidad de poder filtrar por medio de las sentencias AND, OR, TAKE Y ORDER BY
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna sobre la cual se evaluara la sentencia OR |
operator |
Operator |
Operador sobre el cual se evalura la columna respecto al valor proporcionado |
value |
any |
Valor contra el que se evaluara la columna |
and |
And |
Agrega la logica de una sentencia And sobre la información proporcionada. |
or |
Or |
Agrega la logica de una sentencia Or sobre la información proporcionada. |
orderBy |
OrderBy |
Tipo de ordenamiento que deseamos se aplique al realizar una sentencia con filtro where |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
openParentecis |
OpenParentesis |
Puede aperturar un parentecis para filtrar de una mejor manera los registros |
closeParentecis |
CloseParentesis |
Puede cerrar un parentecis para filtrar de una mejor manera los registros |
Define el tipo de ordenamiento que deseamos se ejecute al realizar una consulta, añadiendo la capacidad de poder limitar la cantidad de resultados a travez de la sentencia TAKE
Prop | Type | Description |
---|---|---|
columName |
string |
Nombre de la columna por medio de la cual queremos ordenar |
orderType |
OrderType |
Tipo de ordenamiento que queremos realizar |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
Define un limite de registros a tomar dentro de una sentencia con filtro Where
Prop | Type | Description |
---|---|---|
limite |
number |
Cantidad Maxima de Registros que se desea tomar al filtrar con una sentencia Where |
Agrega la logica de agregar un operador previo y parentecis para filtrar de una mejor manera las consultas
Prop | Type | Description |
---|---|---|
operatorPrev |
Operator |
Operador previo a colocar antes de aperturar el parentecis |
columName |
string |
Nombre de la columna sobre la cual se evaluara la sentencia AND |
operator |
Operator |
Operador sobre el cual se evalura la columna respecto al valor proporcionado |
value |
any |
Valor contra el que se evaluara la columna |
and |
And |
Agrega la logica de una sentencia And sobre la información proporcionada. |
or |
Or |
Agrega la logica de una sentencia Or sobre la información proporcionada. |
orderBy |
OrderBy |
Tipo de ordenamiento que deseamos se aplique al realizar una sentencia con filtro where |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
openParentecis |
OpenParentesis |
Puede aperturar un parentecis para filtrar de una mejor manera los registros |
closeParentecis |
CloseParentesis |
Puede cerrar un parentecis para filtrar de una mejor manera los registros |
Proporciona la logica de un cierre de parentesis
Prop | Type | Description |
---|---|---|
operatorPost |
Operator |
Operador posterior a colocar antes de aperturar el parentecis |
and |
And |
Agrega la logica de una sentencia And sobre la información proporcionada. |
or |
Or |
Agrega la logica de una sentencia Or sobre la información proporcionada. |
orderBy |
OrderBy |
Tipo de ordenamiento que deseamos se aplique al realizar una sentencia con filtro where |
take |
Take |
Cantidad maxima de registros a tomar dentro de una sentencia con filtro where |
openParentecis |
OpenParentesis |
Puede aperturar un parentecis para filtrar de una mejor manera los registros |
closeParentecis |
CloseParentesis |
Puede cerrar un parentecis para filtrar de una mejor manera los registros |
Define el resultado de eliminar registros en BD's
Prop | Type | Description |
---|---|---|
rows_delete |
number |
Cantidad de filas que se han sido eliminadas al ejecutar la sentencia SQL. |
Define la tabla y la logica a aplicar al momento de eliminar los registros de BD's
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla en la que se desea eliminar registros |
where |
Where |
Agrega la logica de un filtro where al momento de eliminar registros en BD's |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Define las columnas a obtener en cada registro de la tabla especificada de acuerdo a la logica proporcionada.
Prop | Type | Description |
---|---|---|
tableName |
string |
Nombre de la tabla de la que se desean obtener los registros |
where |
Where |
Agrega la logica de un filtro where al momento de obtener registros de BD's |
columns |
string[] |
Define las columnas a obtener de la tabla, de desear obtener todas las columnas, no especificar esta propiedad |
propertysConection |
ConectionOptions |
Define las propiedades de conexión a la BD's a la que se pegara JBSqlUtils |
Members | Value | Description |
---|---|---|
SQLite |
"SQLite" |
SQLite |
MySQL |
"MySQL" |
MySQL |
SQLServer |
"SQLServer" |
SQL Server |
PostgreSQL |
"PostgreSQL" |
PostgreSQL |
Members | Value | Description |
---|---|---|
INTEGER |
"INTEGER" |
Entero de 32 bits con signo |
INT |
"INT" |
Entero de 32 bits con signo |
IDENTITY |
"IDENTITY" |
Tipo de dato auto incrementable en SQL Server |
SERIAL |
"SERIAL" |
Tipo de dato auto incrementable en PostgreSQL |
CHAR |
"CHAR" |
Cadena de caracteres de longitud fija |
VARCHAR |
"VARCHAR" |
Cadena de caracteres de longitud variable |
LONGVARCHAR |
"LONGVARCHAR" |
Cadenas de cualquier longitud (varios megabytes), debe definir el tamaño que desea tenga la columna por medio del metodo setSize, para esta numeración en especifico. |
ENUM |
"ENUM" |
Enum se tienen que definir las opciones disponibles a través del metodo setSize, envíando como parametro para esta numeración, las opciones que deseamos tenga disponible |
SMALLINT |
"SMALLINT" |
entero de 16 bits |
TINYINT |
"TINYINT" |
entero de 16 bits |
REAL |
"REAL" |
Valor de coma flotante |
FLOAT |
"FLOAT" |
Valor de coma flotante |
DOUBLE |
"DOUBLE" |
Gran valor de punto flotante |
NUMERIC |
"NUMERIC" |
Valores decimales de precisión absoluta |
DECIMAL |
"DECIMAL" |
Valor decimal de precisión absoluta |
MONEY |
"MONEY" |
Valor decimal de precisión absoluta |
SMALLMONEY |
"SMALLMONEY" |
Valor decimal de precisión absoluta |
BIT |
"BIT" |
Bit único/valor binario (activado o desactivado) |
BOOLEAN |
"BOOLEAN" |
Valor Booleano |
BOOL |
"BOOL" |
Valor Booleano |
BINARY |
"BINARY" |
Matriz de valores binarios |
VARBINARY |
"VARBINARY" |
Matriz de longitud variable de valores binarios, en mysql el valor maximo es de 21844 pero en sql server es de 8000 |
LONGVARBINARY |
"LONGVARBINARY" |
Matriz de valores binarios de cualquier longitud (varios megabytes) SQL Server |
IMAGE |
"IMAGE" |
Cadena binaria de ancho variable |
OBJECT |
"OBJECT" |
Setea que el tipo de dato será un Object |
JSON |
"JSON" |
Setea que el tipo de dato será un JSON |
DATE |
"DATE" |
Valor de fecha |
TIME |
"TIME" |
Valor del tiempo |
TIMESTAMP |
"TIMESTAMP" |
Valor de tiempo con campo adicional de nanosegundos |
SMALLDATETIME |
"SMALLDATETIME" |
Valor de tiempo con campo adicional de nanosegundos |
DATETIME |
"DATETIME" |
Valor de tiempo con campo adicional de nanosegundos |
DATETIME2 |
"DATETIME2" |
Valor de tiempo con campo adicional de nanosegundos |
Members | Value | Description |
---|---|---|
NOT_NULL |
"NOT_NULL" |
Indica que la columna no acepta valores Nullos. |
UNIQUE |
"UNIQUE" |
El valor de esta columna tiene que ser unico |
CHECK |
"CHECK" |
Restriccion que permite indicarle que tipo de valores si serán aceptados por la columna Lo puede realizar a travez del metodo setRestriccion=String restriccion; de esta numeración. considerar que la misma restricción se aplicara para el resto de columnas que tengan un valor Check. |
PRIMARY_KEY |
"PRIMARY_KEY" |
Indica que la columna funciona como clave primaria del modelo. |
FOREIGN_KEY |
"FOREIGN_KEY" |
Indica que la columna funciona como clave foranea del modelo. |
CURRENT_TIMESTAMP |
"CURRENT_TIMESTAMP" |
Indica que el campo tendra como valor por default el TimeStamp del momento en que se almacene el modelo. |
DEFAULT |
"DEFAULT" |
Indica que la columna tendra un valor por default |
AUTO_INCREMENT |
"AUTO_INCREMENT" |
Indica que la columna autoincrementara su valor cada vez que se almacene un registro en la tabla correspondiente al modelo. |
Members | Value | Description |
---|---|---|
MAYOR_IGUAL_QUE |
"MAYOR_IGUAL_QUE" |
Operador >= |
MAYOR_QUE |
"MAYOR_QUE" |
Operador > |
IGUAL_QUE |
"IGUAL_QUE" |
Operador = |
DISTINTO |
"DISTINTO" |
Operador <> |
MENOR_QUE |
"MENOR_QUE" |
Operador < |
MENOR_IGUAL_QUE |
"MENOR_IGUAL_QUE" |
Operador <= |
LIKE |
"LIKE" |
Operador LIKE |
OPEN_PARENTESIS |
"OPEN_PARENTESIS" |
Operador ( |
CLOSE_PARENTESIS |
"CLOSE_PARENTESIS" |
Operador ) |
ORDERBY |
"ORDERBY" |
Operador ORDER BY |
AND |
"AND" |
Operador AND |
OR |
"OR" |
Operador OR |
NOT |
"NOT" |
Operador NOT |
Members | Value | Description |
---|---|---|
ASC |
"ASC" |
Indica que deseamos se ordene de manera Ascendente los registros |
DESC |
"DESC" |
Indica que deseamos se ordene de manera Descendente los registros |