basicgorm

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2024 License: MIT Imports: 20 Imported by: 0

README

Proyecto BasicGORM

Este proyecto es una librería para construir y ejecutar consultas SQL de forma dinámica utilizando Golang.

Descripción

BasicGORM es un paquete en Go diseñado para facilitar la interacción con bases de datos SQL utilizando el paquete database/sql. Además de ejecutar consultas SQL de forma programática utilizando métodos encadenados para establecer diferentes partes de la consulta, como la cláusula SELECT, WHERE, JOIN, ORDER BY, etc., BasicGORM proporciona funciones para validar los datos antes de realizar operaciones de inserción, actualización y eliminación en la base de datos

Características

  • Ejecución de Consultas SQL: Permite ejecutar consultas SQL de forma fácil y segura en bases de datos SQL compatibles..
  • Soporte para diferentes cláusulas SQL como SELECT, WHERE, JOIN, ORDER BY, etc.
  • Posibilidad de ejecutar consultas personalizadas.
  • Manejo de errores integrado.
  • Validación de Datos: Antes de realizar operaciones de inserción, actualización o eliminación en la base de datos, BasicGORM valida los datos proporcionados según los criterios definidos en el esquema de la tabla. Esto incluye verificaciones de longitud mínima o máxima, tipo de datos correcto, valores permitidos, entre otros.
  • Transacciones: Admite transacciones SQL para agrupar operaciones en una única unidad de trabajo, lo que garantiza la consistencia y la integridad de los datos en escenarios complejos que requieren varias operaciones.

Instalación

Para instalar BasicGORM, simplemente ejecuta:

go get github.com/deybin/basicgorm

Uso

  • variables de entorno

    • ENV_DDBB_SERVER='IP/Host'
    • ENV_DDBB_USER='user'
    • ENV_DDBB_PASSWORD='password'
    • ENV_DDBB_DATABASE='database_default'
    • ENV_DDBB_PORT=port
    • ENV_DDBB_SSL ='false/true'
    • ENV_KEY_CRYPTO='key_para_encriptar'
package main

import (
	"fmt"
	"github.com/deybin/basicgorm"
)

func main() {
	query := basicgorm.Querys{
		Table: "mi_tabla",
	}

	result, err := query.Select().Where("campo", basicgorm.I, "valor_campo").And("campo2", basicgorm.IN, []interface{}{"valor_filtro_IN1", "valor_filtro_IN2", "valor_filtro_IN3"}).Exec(basicgorm.QConfig{Database: "mi_database"}).OrderBy("campo_ordenar DESC").All()
	if err!=nil{
		fmt.Println(err)
	}
	fmt.Println(result)
}

Contribución

¡Las contribuciones son bienvenidas! Si quieres contribuir a este proyecto o encuentras algún problema por favor abre un issue primero para discutir los cambios propuestos.

Licencia

© Deybin, 2024~time.Now

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AesDecrypt

func AesDecrypt(crypted, key []byte) ([]byte, error)

func AesDecrypt_PHP

func AesDecrypt_PHP(crypted, key []byte) ([]byte, error)

func AesEncrypt

func AesEncrypt(origData, key []byte) ([]byte, error)

func AesEncrypt_PHP

func AesEncrypt_PHP(origData, key []byte) (string, error)

func CheckDate

func CheckDate(date string) error

*

  • Retorna el índice de un elemento en un arreglo de strings
  • date[string] = fecha a validar formato string dd/mm/yyyy
  • return [bool],[error] = [true or false],[descripción del error or nil]

func Connection

func Connection(database string) (*sql.DB, error)

func ConnectionCloud

func ConnectionCloud() (*sql.DB, error)

func DiferenciaDate

func DiferenciaDate(date ...string) float64

*

  • Retorna la diferencia entre dos fechas en días.
  • @param date {[]string}: fecha inicial y fecha final en formato dd/mm/yyyy, si no se pasa la fecha inicial se toma la fecha actual
  • @return {float64} = diferencia entre fechas en días

func GetDateLocationString

func GetDateLocationString() string

*

  • Retorna Fecha en formato yyyy-mm-dd hh:mm:ss en zona horaria (America/Bogota)
  • Return [string] : fecha formato string yyyy-mm-dd hh:mm:ss (America/Bogota)

func GetDateLocationTime

func GetDateLocationTime() time.Time

retorna la fecha segun la locacion del usurio es este caso esta configurado para (America/Bogota)

func GetDay

func GetDay() int64

func GetDayDate

func GetDayDate(date string) (string, int)

func GetFechaLocationString

func GetFechaLocationString() string

*

  • Retorna fecha en formato dd/mm/yyyy en zona horaria (America/Bogota)
  • Return [string] : fecha formato string dd/mm/yyyy (America/Bogota)

func GetFechaLocationStringAdd

func GetFechaLocationStringAdd(days int) string

agrega dias a la fecha actual y retorna fecha en formato string segun la location del usuario = (America/Bogota) 01/01/2021

func GetHoraLocationString

func GetHoraLocationString() string

retorna fecha en formato string segun la location del usuario = (America/Bogota) 01:01:59

func GetKey_PrivateCrypto

func GetKey_PrivateCrypto() []byte

func GetMonth

func GetMonth() int64

func GetMonthDate

func GetMonthDate(date string) (string, int)

func GetMonthString

func GetMonthString() string

func GetYear

func GetYear() int64

retorna la fecha segun la locacion del usurio es este caso esta configurado para (America/Bogota) 2021-01-01 12:00:00.000

func GetYearDate

func GetYearDate(date string) (string, int)

func GetYearString

func GetYearString() string

retorna la fecha segun la locacion del usurio es este caso esta configurado para (America/Bogota) 2021-01-01 12:00:00.000

func IndexOf_String

func IndexOf_String(arreglo []string, search string) int

func InterfaceToString

func InterfaceToString(params ...interface{}) string

recibe un valor interface que no se reconoce su tipo y devuelve un string

func IsItHoliday

func IsItHoliday(date string, days_holidays []string) bool

func Null

func Null() *regexp.Regexp

func Number

func Number() *regexp.Regexp

func PKCS5Padding

func PKCS5Padding(src []byte, blockSize int) []byte

func PKCS7Padding

func PKCS7Padding(cipherText []byte, blockSize int) []byte

func PKCS7UnPadding

func PKCS7UnPadding(origData []byte) []byte

func Query_Cross_Update

func Query_Cross_Update(query string) string

func SumarDate

func SumarDate(date string, days int) string

suma días a una fecha

Types

type DataType

type DataType string

DataType basicGORM data type

const (
	Bool   DataType = "bool"
	Int    DataType = "int64"
	Uint   DataType = "uint64"
	Float  DataType = "float64"
	String DataType = "string"
	Time   DataType = "time"
	Bytes  DataType = "bytes"
)

type Fields

type Fields struct {
	Name         string      //Nombre del campo
	Description  string      //Descripción del campo
	Type         DataType    //A bajo nivel es un string donde se especifica de que tipo sera el campo
	Required     bool        //Si el valor para inserción de este campo es requerido o no
	PrimaryKey   bool        //Si el campo es primary key entonces es obligatorio este campo para insert,update y delete
	Where        bool        //El campo puede ser utilizado para filtrar al utilizar el update y delete
	Update       bool        //El campo puede ser modificado
	Default      interface{} //Valor por defecto que se tomara si no se le valor al campo, el tipo del valor debe de ser igual al Type del campo
	Empty        bool        //El campo aceptara valor vació si se realiza la actualización
	ValidateType interface{} //Los datos serán validados mas a fondo mediante esta opción para eso se le debe de asignar los siguientes typo de struct: TypeStrings, TypeFloat64, TypeUint64 yTypeInt64
}

Las etiquetas de structure o también llamado etiquetas de campo estos metadatos serán los siguientes según el tipo de dato

func SchemaForDelete

func SchemaForDelete(modelo []Fields) []Fields

func SchemaForUpdate

func SchemaForUpdate(modelo []Fields) []Fields

type OperatorWhere

type OperatorWhere string

* operaciones utilizadas con la sentencia WHERE

const (
	I           OperatorWhere = "="
	D           OperatorWhere = "<>"
	MY          OperatorWhere = ">"
	MYI         OperatorWhere = ">="
	MN          OperatorWhere = "<"
	MNI         OperatorWhere = "<="
	LIKE        OperatorWhere = "LIKE"
	IN          OperatorWhere = "IN"
	NOT_IN      OperatorWhere = "NOT IN"
	BETWEEN     OperatorWhere = "BETWEEN"
	NOT_BETWEEN OperatorWhere = "NOT BETWEEN"
)

type QConfig

type QConfig struct {
	Cloud     bool
	Database  string
	Procedure bool
}

type Querys

type Querys struct {
	Table string /** nombre de la tabla*/
	// contains filtered or unexported fields
}

func (*Querys) All

func (q *Querys) All() ([]map[string]interface{}, error)

* All recupera todos los resultados de la consulta SQL y los devuelve como una lista de mapas.

Esta función se utiliza para obtener todos los resultados de una consulta SQL ejecutada previamente utilizando el método Exec, y devuelve los resultados como una lista de mapas donde cada mapa representa una fila de resultados, con los nombres de las columnas como claves y los valores de las columnas como valores.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).Exec("mi_database").All() // Obtiene todos los resultados de la consulta ejecutada.

Devuelve:

  • Una lista de mapas, donde cada mapa representa una fila de resultados con los nombres de las columnas como claves y los valores de las columnas como valores.
  • Un error, si ocurre alguno durante el proceso de recuperación de resultados.

func (*Querys) And

func (q *Querys) And(and string, op OperatorWhere, arg interface{}) *Querys

* And añade una cláusula AND adicional a la cláusula WHERE existente de la consulta SQL. La condición, el operador y el argumento se especifican como parámetros.

Esta función se utiliza para agregar condiciones adicionales a la cláusula WHERE de la consulta SQL. Si la cláusula WHERE aún no está especificada en la consulta, esta función no hace nada.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).And("campo4", ">", otroValor).Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • and: Condición adicional para agregar a la cláusula WHERE existente.
  • op: Operador para comparar valores en la condición (por ejemplo, "=", "<>", ">", "<","<=", ">=", "LIKE", "IN", "NOT IN", "BETWEEN" "NOT BETWEEN").
  • arg: Valor que se compara en la condición.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) Close

func (q *Querys) Close()

func (*Querys) Connect

func (q *Querys) Connect(config QConfig) *Querys

func (*Querys) Exec

func (q *Querys) Exec(config QConfig) *Querys

* Exec ejecuta la consulta SQL en la base de datos y almacena los resultados en la estructura Querys.

Esta función se utiliza para ejecutar consultas SQL en la base de datos y almacenar los resultados en la estructura Querys para su posterior procesamiento.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1", "campo2").Where("campo3", "=", valor).Exec("mi_database").All() // Ejecuta la consulta SQL utilizando la configuración proporcionada.

Parámetros:

  • config: Configuración para la conexión a la base de datos, incluyendo detalles como la nube, el nombre de la base de datos, etc.

Devuelve:

  • Un puntero al struct Querys actualizado con los resultados de la consulta ejecutada.

func (*Querys) ExecTx

func (q *Querys) ExecTx() *Querys

func (*Querys) GetErrors

func (q *Querys) GetErrors() error

func (*Querys) GetQuery

func (q *Querys) GetQuery() string

* GetQuery devuelve la consulta SQL completa construida utilizando los métodos del struct Querys.

Esta función se utiliza para obtener la consulta SQL completa que se ha construido utilizando los métodos del struct Querys, incluyendo la selección de columnas, cláusulas JOIN, condiciones WHERE, agrupamiento GROUP BY, ordenamiento ORDER BY, y limitación de resultados con TOP o LIMIT.

Devuelve:

  • Una cadena que representa la consulta SQL completa construida.

func (*Querys) GroupBy

func (q *Querys) GroupBy(group ...string) *Querys

* GroupBy establece la cláusula GROUP BY de la consulta SQL. Puede especificar una lista de campos como argumentos.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1", "campo2").GroupBy("campo4", "campo5").Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • group: Lista de nombres de campos a utilizar en la cláusula GROUP BY.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) Join

func (q *Querys) Join(tp TypeJoin, table string, on string) *Querys

* Join añade una cláusula JOIN a la consulta SQL. El tipo de unión (INNER, LEFT, RIGHT, etc.), la tabla y la condición ON se especifican como parámetros.

Ejemplo de uso:

queryBuilder := &Querys{Table: "tabla_principal"}
result,err:=queryBuilder.Select("tabla_principal.columna1, tabla_secundaria.columna2").
    Join("INNER_JOIN", "tabla_secundaria", "tabla_principal.id = tabla_secundaria.id").
    Where("tabla_principal.columna3", "=", valor).Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • tp: Tipo de unión (INNER, LEFT, RIGHT, etc.).
  • table: Nombre de la tabla a unir.
  • on: Condición ON para la unión.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) Limit

func (q *Querys) Limit(limit ...int) *Querys

* Limit establece la cláusula LIMIT de la consulta SQL para seleccionar un número específico de filas, con opción para especificar un offset.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select().Where("campo3","=", valor).Limit(10).Exec("mi_database").All() // Limita la consulta a 10 filas
result,err:=queryBuilder.Select("campo1", "campo2").Where("campo3","=", valor).Limit(10,3).Exec("mi_database").All() // Limita la consulta a 10 filas omitiendo 3 filas en el conjunto de resultados de una consulta
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • limit: Lista de uno o dos enteros. Si se proporciona un solo entero, establece el límite de filas. Si se proporcionan dos enteros, el primero especifica el límite de filas y el segundo especifica el offset.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) One

func (q *Querys) One() (map[string]interface{}, error)

* One recupera un solo resultado de la consulta SQL y lo devuelve como un mapa.

Esta función se utiliza para obtener un solo resultado de una consulta SQL ejecutada previamente utilizando el método Exec, y devuelve el resultado como un mapa donde las claves son los nombres de las columnas y los valores son los valores de las columnas correspondientes para la primera fila de resultados.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).Exec("mi_database").One() // Obtiene un solo resultado de la consulta ejecutada.

Devuelve:

  • Un mapa donde las claves son los nombres de las columnas y los valores son los valores de las columnas correspondientes para la primera fila de resultados.
  • Un error, si ocurre alguno durante el proceso de recuperación del resultado.

func (*Querys) Or

func (q *Querys) Or(or string, op OperatorWhere, arg interface{}) *Querys

* Or añade una cláusula OR adicional a la cláusula WHERE existente de la consulta SQL. La condición, el operador y el argumento se especifican como parámetros.

Esta función se utiliza para agregar condiciones adicionales a la cláusula WHERE de la consulta SQL. Si la cláusula WHERE aún no está especificada en la consulta, esta función no hace nada.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).Or("campo4", ">", otroValor).Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • and: Condición adicional para agregar a la cláusula WHERE existente.
  • op: Operador para comparar valores en la condición (por ejemplo, "=", "<>", ">", "<","<=", ">=", "LIKE", "IN", "NOT IN", "BETWEEN" "NOT BETWEEN").
  • arg: Valor que se compara en la condición.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) OrderBy

func (q *Querys) OrderBy(campos ...string) *Querys

* OrderBy establece la cláusula ORDER BY de la consulta SQL. Puede especificar una lista de campos como argumentos.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3","=", valor).OrderBy("campo4 DESC", "campo5 ASC").Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • campos: Lista de nombres de campos a utilizar en la cláusula ORDER BY.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) ResetQuery

func (q *Querys) ResetQuery()

func (*Querys) Select

func (q *Querys) Select(campos ...string) *Querys

* Select establece la cláusula SELECT de la consulta SQL. Puede especificar una lista de campos como argumentos. Si no se proporcionan campos, se seleccionan todos (*).

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select().Exec("mi_database").All()
result,err:=queryBuilder.Select("campo1,campo2").Exec("mi_database").All()
result,err:=queryBuilder.Select("campo1", "campo2").Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • campos: Lista de nombres de campos a seleccionar. Si está vacío, se seleccionan todos los campos.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) SetNewArgs

func (q *Querys) SetNewArgs(arg ...interface{}) error

func (*Querys) SetQueryString

func (q *Querys) SetQueryString(query string, arg interface{}) *Querys

* SetQueryString establece una consulta SQL completa y sus argumentos en el struct Querys.

Esta función se utiliza para establecer una consulta SQL completa y sus argumentos en el struct Querys. Esto permite ejecutar consultas SQL personalizadas que no se construyeron utilizando los métodos de construcción de consultas normales del struct Querys.

Parámetros:

  • query: La consulta SQL completa que se va a establecer en el struct Querys.
  • arg: Los argumentos de la consulta SQL, que pueden ser un solo valor o un slice de valores.

Devuelve:

  • Una referencia al struct Querys actualizado con la consulta SQL y sus argumentos.

func (*Querys) SetTable added in v1.0.1

func (q *Querys) SetTable(table string) *Querys

func (*Querys) Text

func (q *Querys) Text(columna string) (interface{}, error)

* Text recupera el valor de una columna específica de la primera fila de resultados de la consulta SQL.

Esta función se utiliza para obtener el valor de una columna específica de la primera fila de resultados de una consulta SQL ejecutada previamente utilizando el método Exec.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).Exec("mi_database") // Ejecuta la consulta SQL utilizando la configuración proporcionada.
valor, err := queryBuilder.Text("nombreColumna") // Obtiene el valor de la columna "nombreColumna".

Parámetros:

  • columna: Nombre de la columna de la cual se desea obtener el valor.

Devuelve:

  • El valor de la columna especificada.
  • Un error, si ocurre alguno durante el proceso de recuperación del valor.

func (*Querys) Top

func (q *Querys) Top(top int) *Querys

* Top establece la cláusula LIMIT de la consulta SQL para seleccionar un número específico de filas.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1", "campo2").Top(10).Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • top: Número de filas a seleccionar.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

func (*Querys) Where

func (q *Querys) Where(where string, op OperatorWhere, arg interface{}) *Querys

* Where establece la cláusula WHERE de la consulta SQL con una condición y un operador. La condición puede contener placeholders ($) para argumentos de la consulta. El operador se utiliza para comparar valores en la condición. El argumento es el valor que se comparará en la condición.

Ejemplo de uso:

queryBuilder := &Querys{Table: "mi_tabla"}
result,err:=queryBuilder.Select("campo1, campo2").Where("campo3", "=", valor).Exec("mi_database").All()
consultaFinal := queryBuilder.GetQuery()

Parámetros:

  • where: Condición para la cláusula WHERE.
  • op: Operador para comparar valores en la condición (por ejemplo, "=", "<>", ">", "<","<=", ">=", "LIKE", "IN", "NOT IN", "BETWEEN" "NOT BETWEEN").
  • arg: Valor que se compara en la condición.

Devuelve:

  • Un puntero al struct Querys actualizado para permitir el encadenamiento de métodos.

type Regex

type Regex interface {
	Letras(start int8, end int16) *regexp.Regexp
	Float() *regexp.Regexp
}

type Schema added in v1.0.2

type Schema interface {
	GetTableName() string
	GetSchemaInsert() []Fields
	GetSchemaUpdate() []Fields
	GetSchemaDelete() []Fields
}

Schema es una interfaz que define métodos para obtener información sobre el esquema de una tabla en una base de datos.

type SqlExecMultiple

type SqlExecMultiple struct {
	// contains filtered or unexported fields
}

func (*SqlExecMultiple) Commit

func (sq *SqlExecMultiple) Commit() error

func (*SqlExecMultiple) Exec

func (sq *SqlExecMultiple) Exec(params ...bool) error

* Ejecuta el query

Return
	- (error): retorna errores ocurridos durante la ejecución

func (*SqlExecMultiple) ExecTransaction

func (sq *SqlExecMultiple) ExecTransaction(t *Transaction) error

func (*SqlExecMultiple) New

func (sq *SqlExecMultiple) New(database string) *SqlExecMultiple

Crea una nueva instancia de SqlExecMultiple con el nombre de la base de datos proporcionado.

Parámetros
  * name {string}: database
Return
  - (*SqlExecMultiple) retorna  puntero *SqlExecMultiple struct

func (*SqlExecMultiple) SetInfo

func (sq *SqlExecMultiple) SetInfo(s Schema, datos ...map[string]interface{}) *Transaction

SetInfo establece la información para una nueva transacción en SqlExecMultiple.

Recibe un esquema (s Schema) y datos (datos ...map[string]interface{}) para la transacción.
Retorna un puntero a la transacción creada.
Parámetros
	* s {Schema}: esquema de la tabla
	* datos {[]map[string]interface{}}: datos a insertar, actualizar o eliminar
Return
	- (*Transaction) retorna puntero *Transaction

type SqlExecSingle

type SqlExecSingle struct {
	// contains filtered or unexported fields
}

func (*SqlExecSingle) Delete

func (sq *SqlExecSingle) Delete() error

Valida los datos para Eliminar y crea el query para Eliminar

Return
	- (error): retorna errores ocurridos en la validación

func (*SqlExecSingle) Exec

func (sq *SqlExecSingle) Exec(database string, params ...bool) error

Ejecuta el query

Return
	- returns {error}: retorna errores ocurridos durante la ejecución

func (*SqlExecSingle) GetData added in v1.0.2

func (sq *SqlExecSingle) GetData() []map[string]interface{}

Retorna los datos que se enviaron o enviaran para ser insertados, modificados o eliminados

Return
	- []map[string]interface{}

func (*SqlExecSingle) Insert

func (sq *SqlExecSingle) Insert() error

Valida los datos para insertar y crea el query para insertar

Return
	- (error): retorna errores ocurridos en la validación

func (*SqlExecSingle) New

func (sq *SqlExecSingle) New(s Schema, datos ...map[string]interface{}) *SqlExecSingle

New crea una nueva instancia de SqlExecSingle con el esquema y los datos proporcionados.

Parámetros
	* s {Schema}: esquema de la tabla
	* datos {[]map[string]interface{}}: datos a insertar, actualizar o eliminar

Return
	- (*SqlExecSingle) retorna  puntero *SqlExecSingle struct

func (*SqlExecSingle) Update

func (sq *SqlExecSingle) Update() error

Valida los datos para actualizar y crea el query para actualizar

Return
	- (error): retorna errores ocurridos en la validación

type Transaction

type Transaction struct {
	// contains filtered or unexported fields
}

func (*Transaction) Delete

func (t *Transaction) Delete() error

func (*Transaction) GetData added in v1.0.2

func (t *Transaction) GetData() []map[string]interface{}

func (*Transaction) Insert

func (t *Transaction) Insert() error

func (*Transaction) Update

func (t *Transaction) Update() error

type TypeFloat64

type TypeFloat64 struct {
	Porcentaje bool    //Convierte el valor del campo en porcentaje
	Negativo   bool    //El campo aceptara valores negativos
	Menor      float64 //Los valores que aceptaran tienen que ser menores o igual que este metadato
	Mayor      float64 //Los valores que aceptaran tienen que ser mayores o igual  que este metadato
}

type TypeInt64

type TypeInt64 struct {
	Max      int64 // Hasta que valor aceptara que se almacene en este campo
	Min      int64 // Valor como mínimo  aceptara que se almacene en este campo
	Negativo bool  // Rl campo aceptara valores negativos
}

type TypeJoin

type TypeJoin string
const (
	INNER TypeJoin = "INNER JOIN"
	LEFT  TypeJoin = "LEFT JOIN"
	RIGHT TypeJoin = "RIGHT JOIN"
	FULL  TypeJoin = "FULL OUTER JOIN"
)

type TypeStrings

type TypeStrings struct {
	LowerCase bool           //Convierte en minúscula el valor del campo
	UpperCase bool           //Convierte en mayúscula el valor del campo
	Encriptar bool           //Crea un hash del valor del campo
	Cifrar    bool           //Cifra el valor del campo
	Date      bool           //Verifica que el valor del campo sea una fecha valida con formato dd/mm/yyyy
	Min       int            //Cuantos caracteres como mínimo debe de tener el valor del campo
	Max       int            //Cuantos caracteres como máximo debe de tener el valor del campo
	Expr      *regexp.Regexp //Expresión regular que debe cumplir el valor que almacenara el campo

}

type TypeUint64

type TypeUint64 struct {
	Max uint64 //Hasta que valor aceptara que se almacene en este campo
}

Directories

Path Synopsis
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL