DB
Recurso de carregamento de datasources. Este recurso permite o carregamento do datasource que mais lhe for conveniente, suporta conexão com MariaDB, MSSQLServer, PostgreSQL, H2 e Oracle.
// Atenção ao inserir parâmetros em queries,
// não deve utilizar a concatenação de strings
// para garantir a segurança contra SQL Injection:
const NOK = _db.query(
'select * from cliente where id = '+ _req.getString('id')
);
// ATENÇÃO: O exemplo acima é incorreto.
// Siga o padrão abaixo para garantir a segurança
// ao injetar parâmetros:
const OK = _db.query(
'select * from cliente where id = ?', _val.list().add( _req.getString('id') )
);
all
_db.all(arg0: string) : List
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( List )
batch
DBBatch
_db.batch() :Descrição
Inicia o processamento em lote de execuções em base de dados.
Como Usar
const batchComParametros = _db.batch(`
insert into producto(id, uid, nome, preco, active)
values(nextval('producto_id'), ?, ?, ?, true)
`)
.put(_uid.generate(), "Netuno Lote 1", 3.2)
.put(_uid.generate(), "Netuno Lote 2", 5.4)
const resultados = batchComParametros.execute()
Retorno
( DBBatch )
Gestor da execução de operações em lote.
DBBatch
_db.batch(comandoSQL: string) :Descrição
Inicia o processamento em lote de execuções em base de dados, com base em um único comando que será executado múltiplas vezes com variação dos dados.
Como Usar
const batchComParametros = _db.batch(`
insert into producto(id, uid, nome, preco, active)
values(nextval('producto_id'), ?, ?, ?, true)
`)
.put(_uid.generate(), "Netuno Lote 1", 3.2)
.put(_uid.generate(), "Netuno Lote 2", 5.4)
const resultados = batchComParametros.execute()
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
comandoSQL | string | Comando SQL que será utilizado como base para todas as interações. |
Retorno
( DBBatch )
Gestor da execução de operações em lote.
checkExists
CheckExists
_db.checkExists() :Retorno
( CheckExists )
column
Column
_db.column() :Retorno
( Column )
date
_db.date() : Date
Descrição
Obtém a data atual para ser utilizada em operações de base de dados.
Retorno
( Date )
Data atual.
_db.date(time: Long) : Date
Descrição
Através do número longo que identifica a data exata, cria um novo objeto Date para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
time | Long | Número longo referente a data exata. |
Retorno
( Date )
Novo objeto do tipo: java.sql.Date
_db.date(texto: string) : Date
Descrição
Com o conteúdo de texto obtém o objeto de data para ser utilizada em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
texto | string | Texto que contém data no formato: yyyy-MM-dd |
Retorno
( Date )
Data obtida do texto.
_db.date(instant: Instant) : Date
Descrição
Através do objeto Instant cria um novo objeto Date com java.sql.Date.from, para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
instant | Instant | Objeto do tipo: java.time.Instant |
Retorno
( Date )
Novo objeto do tipo: java.util.Date
_db.date(localDateTime: LocalDate) : Date
Descrição
Através do objeto LocalDateTime cria um novo objeto Date para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
localDateTime | LocalDate | Objeto do tipo: java.time.LocalDateTime |
Retorno
( Date )
Novo objeto do tipo: java.sql.Date
delete
_db.delete(tabela: string, id: int) : int
Descrição
Executa a eliminação de registos na base de dados baseado no ID.
Como Usar
// Executa a eliminação através do ID
const id = 1;
const result = _db.delete(
"cliente",
id
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
id | int | ID do registo a eliminar. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.delete(tabela: string, uid: string) : int
Descrição
Executa a eliminação de registos na base de dados baseado no UID.
Como Usar
// Executa a eliminação através do UID
const uid = "1d8722f4-fa28-4a08-8098-6dd5cab1b212";
const result = _db.delete(
"cliente",
uid
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
uid | string | UID do registo a eliminar. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.delete(tabela: string, dados: Map) : int
Descrição
Executa a eliminação de registos na base de dados baseado no ID ou UID passado no objeto de dados.
Como Usar
// Executa a eliminação através do id ou uid nos dados
const result = _db.delete(
"cliente",
_val.map().set("id", 1)
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
dados | Map | Estrutura de dados que deverá ser eliminada baseado no seu ID ou UID. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
Values) : int
_db.delete(tabela: string, dados:Descrição
Executa a eliminação de registos na base de dados baseado no ID ou UID passado no objeto de dados.
Como Usar
// Executa a eliminação através do id ou uid nos dados
const result = _db.delete(
"cliente",
_val.map().set("id", 1)
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
dados | Values | Estrutura de dados que deverá ser eliminada baseado no seu ID ou UID. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
deleteMany
_db.deleteMany(arg0: string, arg1: Object[]) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Object[] |
Retorno
( int[] )
_db.deleteMany(arg0: string, arg1: List) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | List |
Retorno
( int[] )
Values) : int[]
_db.deleteMany(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( int[] )
escape
_db.escape(dados: string) : string
Descrição
Garante a codificação para definir nomes em base de dados, normalmente aspas (").
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Nome que precisa ser utilizado em base de dados, como nome de tabela ou coluna. |
Retorno
( string )
Nome seguro para utilizar em base de dados, como em tabelas e colunas.
escapeEnd
_db.escapeEnd() : string
Descrição
Obtém a codificação de fim para definir nomes em base de dados, normalmente aspas (").
Retorno
( string )
Fim de nomes em base de dados.
escapeStart
_db.escapeStart() : string
Descrição
Obtém a codificação de início para definir nomes em base de dados, normalmente aspas (").
Retorno
( string )
Início de nomes em base de dados.
execute
_db.execute(comandoSQL: string) : int
Descrição
Executa comandos diretamente na base de dados, pode ser executados comandos como inserts e updates à medida.
Como Usar
const linhasAfetadas = _db.execute(`
insert into product(id, uid, nome, preco, active)
values(nextval('product_id'), '${_uid.generate()}', '${_db.sanitize('Netuno Insert Teste 1')}', 3.2, true)
`)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
comandoSQL | string | Comando SQL que será executado diretamente na base de dados. |
Retorno
( int )
Número de linhas afetadas pelo comando executado.
_db.execute(comandoSQL: string, parametros: Object[]) : int
Descrição
Executa comandos diretamente na base de dados, pode ser executados comandos como inserts e updates à medida.
Como Usar
const linhasAfetadas = _db.execute(`
insert into product(id, uid, nome, preco, active)
values(nextval('product_id'), ?, ?, ?, true)
`, _uid.generate(), "Netuno Insert Teste 1", 3.2)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
comandoSQL | string | Comando SQL que será executado diretamente na base de dados. |
parametros | Object[] | Sequência de valores dos parâmetros que são injetados no comando. |
Retorno
( int )
Número de linhas afetadas pelo comando executado.
_db.execute(comandoSQL: string, parametros: List) : int
Descrição
Executa comandos diretamente na base de dados, pode ser executados comandos como inserts e updates à medida.
Como Usar
const linhasAfetadas = _db.execute(`
insert into product(id, uid, nome, preco, active)
values(nextval('product_id'), ?, ?, ?, true)
`, _val.list()
.add(_uid.generate())
.add("Netuno Insert Teste 1")
.add(3.2)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
comandoSQL | string | Comando SQL que será executado diretamente na base de dados. |
parametros | List | Lista dos valores dos parâmetros que são injetados no comando. |
Retorno
( int )
Número de linhas afetadas pelo comando executado.
Values) : int
_db.execute(comandoSQL: string, parametros:Descrição
Executa comandos diretamente na base de dados, pode ser executados comandos como inserts e updates à medida.
Como Usar
const linhasAfetadas = _db.execute(`
insert into product(id, uid, nome, preco, active)
values(nextval('product_id'), ?, ?, ?, true)
`, _val.list()
.add(_uid.generate())
.add("Netuno Insert Teste 1")
.add(3.2)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
comandoSQL | string | Comando SQL que será executado diretamente na base de dados. |
parametros | Values | Lista dos valores dos parâmetros que são injetados no comando. |
Retorno
( int )
Número de linhas afetadas pelo comando executado.
find
Values) : List
_db.find(tabela: string, params:Descrição
A partir de um objeto que tem a estrutura parecida com uma consulta SQL, obtém uma lista dos dados encontrados nas condições de pesquisa. Constrói a query compatível com qualquer tipo de base de dados. Permite condições, ordenação, evita SQL Injection, entre outros. Exemplo que demonstra como define as colunas, as condições, ordenação e paginação:
Como Usar
const list = _db.find(
"pessoa",
_val.map()
.set(
"columns",
_val.list()
.add("uid")
.add(
_val.map()
.set("nome", "Pedro")
.set("apelido", "Cabral")
)
.add("email")
)
.set(
"where",
_val.map()
.set("grupo", 1)
.set(
"email",
_val.map()
.set("operator", "like")
.set("value", "%@e-mail.exemplo")
)
)
.set(
"order",
_val.list()
.add("nome")
.add("apelido")
)
.set("limit", 10)
.set("offset", 5)
)
_out.json(
list
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome tabela. |
params | Values | Definição da consulta, suporta limitar colunas (columns), adicionar condições (where), ordenação (order), entre outros. |
Retorno
( List )
Lista dos registos de dados encontrados.
findFirst
Values) : Values
_db.findFirst(tabela: string, params:Descrição
A partir de um objeto que tem a estrutura parecida com uma consulta SQL, obtém uma lista dos dados encontrados nas condições de pesquisa. Constrói a query compatível com qualquer tipo de base de dados. Permite condições, ordenação, evita SQL Injection, entre outros. Exemplo que demonstra como define as colunas, as condições, ordenação e paginação:
Como Usar
const record = _db.findFirst(
"pessoa",
_val.map()
.set(
"where",
_val.map()
.set("email", "pessoa@e-mail.exemplo")
)
)
_out.json(
record
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome tabela. |
params | Values | Definição da consulta, suporta limitar colunas (columns), adicionar condições (where), ordenação (order), entre outros. |
Retorno
( Values )
Dados da linha de registo encontrado.
findQuery
Values) : string
_db.findQuery(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( string )
get
Values
_db.get(tabela: string, id: int) :Descrição
Obtém os dados do registo na base de dados, através do nome da tabela e do ID.
Como Usar
// Todos os dados do registro com o ID fornecido.
const dbRegistoCliente = _db.get(
"cliente",
100
)
_out.json(dbRegistoCliente);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve obter os dados. |
id | int | ID do registo que deve obter os dados. |
Retorno
( Values )
Os dados do item encontrado ou null caso não exista.
Values
_db.get(tabela: string, uid: string) :Descrição
Obtém os dados do registo na base de dados, através do nome da tabela e do UID.
Como Usar
// Todos os dados do registro com o UID fornecido.
const dbRegistoCliente = _db.get(
"cliente",
"cbe8bd5a-98c9-48b2-bbac-6a11ac46f2a8"
);
_out.json(dbRegistoCliente);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve obter os dados. |
uid | string | UID do registo que deve obter os dados. |
Retorno
( Values )
Os dados do item encontrado ou null caso não exista.
getKey
_db.getKey() : string
Descrição
Obtém o nome da configuração de conexão à base de dados que está a ser utilizada. Os detalhes da conexão deverão estar definidas no documento configuração de ambiente da aplicação, mais informações no tutorial sobre Multiplas bases de dados.
Como Usar
_header.contentTypePlain()
const db_PADRAO_NomeConexao = _db.getKey()
_out.print(`A conexão da db PADRÃO é: ${db_PADRAO_NomeConexao}\n`)
const db_OUTRA_NomeConexao = _db.init("countries").getKey()
_out.print(`A OUTRA conexão da db é: ${db_OUTRA_NomeConexao}\n`)
Retorno
( string )
Nome da configuração de conexão à base de dados que está a ser utilizada.
index
Index
_db.index() :Retorno
( Index )
init
_db.init(chave: string) : DB
Descrição
Inicia um novo recurso de DB para o nome de conexão que é passada. Os detalhes da conexão deverão estar definidas no documento configuração de ambiente da aplicação, mais informações no tutorial sobre Multiplas bases de dados.
Como Usar
// Executa queries em outra base de dados
const dbPaises = _db.init('countries')
const paises = dbPaises.query('select code, name from country')
_out.json(paises)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
chave | string | Nome da conexão da base definida nas configurações de ambiente da aplicação. |
Retorno
( DB )
O novo recurso de base de dados que utiliza uma outra base de dados.
insert
_db.insert(tabela: string, dados: Map) : int
Descrição
Executa a inserção de novos dados na base de dados e retorna o id dos mesmos.
Como Usar
// Executa a inserção de novo registo e retorna o ID
const id = _db.insert(
"client",
_val.map()
.set("name", "Sitana"),
.set("mail", "admin@sitana.pt")
);
_out.json(
_val.map().set("id", id)
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
dados | Map | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
Values) : int
_db.insert(tabela: string, dados:Descrição
Executa a inserção de novos dados na base de dados e retorna o id dos mesmos.
Como Usar
// Executa a inserção de novo registo e retorna o ID
const id = _db.insert(
"client",
_val.map()
.set("name", "Sitana"),
.set("mail", "admin@sitana.pt")
);
_out.json(
_val.map().set("id", id)
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
dados | Values | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
insertIfNotExists
_db.insertIfNotExists(arg0: string, arg1: Map) : int
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Map |
Retorno
( int )
Values) : int
_db.insertIfNotExists(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( int )
insertMany
_db.insertMany(arg0: string, arg1: Object[]) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Object[] |
Retorno
( int[] )
_db.insertMany(arg0: string, arg1: List) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | List |
Retorno
( int[] )
Values) : int[]
_db.insertMany(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( int[] )
isH2
_db.isH2() : boolean
Descrição
Verifica se a base de dados conectada é H2 Database.
Retorno
( boolean )
Se é H2 Database.
isH2DataBase
_db.isH2DataBase() : boolean
Descrição
Verifica se a base de dados conectada é H2 Database.
Retorno
( boolean )
Se é H2 Database.
isMariaDB
_db.isMariaDB() : boolean
Descrição
Verifica se a base de dados conectada é MariaDB.
Retorno
( boolean )
Se é MariaDB.
isPG
_db.isPG() : boolean
Descrição
Verifica se a base de dados conectada é PostgreSQL.
Retorno
( boolean )
Se é PostgreSQL.
isPostgreSQL
_db.isPostgreSQL() : boolean
Descrição
Verifica se a base de dados conectada é PostgreSQL.
Retorno
( boolean )
Se é PostgreSQL.
query
_db.query(arg0: string) : List
Descrição
Execute uma query SQL diretamente na base de dados. Muita cuidado com SQL Injection.
Como Usar
const valorMaximoSeguro = _db.toFloat(_req.getString("valor_maximo"))
_out.json(
_db.query(`
select * from produto
where preco < ${valorMaximoSeguro}
`)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( List )
Lista de dados obtidos com a query direta à base de dados.
_db.query(query: string, params: Object[]) : List
Descrição
Execute uma query SQL diretamente na base de dados. Muita cuidado com SQL Injection.
Como Usar
_out.json(
_db.query(`
select * from produto
where preco < ?
`, _req.getString("preco_maximo"))
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter registos. |
params | Object[] | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( List )
Lista de dados obtidos com a query direta à base de dados.
_db.query(query: string, params: List) : List
Descrição
Execute uma query SQL diretamente na base de dados. Muita cuidado com SQL Injection.
Como Usar
_out.json(
_db.query(`
select * from produto
where preco < ?
`, _req.getString("preco_maximo"))
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter registos. |
params | List | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( List )
Lista de dados obtidos com a query direta à base de dados.
Values) : List
_db.query(query: string, params:Descrição
Execute uma query SQL diretamente na base de dados. Muita cuidado com SQL Injection.
Como Usar
_out.json(
_db.query(`
select * from produto
where preco < ?
`, _req.getString("preco_maximo"))
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter registos. |
params | Values | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( List )
Lista de dados obtidos com a query direta à base de dados.
queryFirst
Values
_db.queryFirst(query: string) :Descrição
Execute uma query SQL diretamente na base de dados e obtém apenas o primeiro registo. Muita cuidado com SQL Injection.
Como Usar
const produtoEncontrado = _db.queryFirst(`
select * from produto
where nome like '%${_db.sanitize(_req.getString('termo'))}%'
`)
_log.info('O primeiro produto encontrado:', produtoEncontrado)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter o registo. |
Retorno
( Values )
O primeiro registo de dados obtido com a query direta à base de dados.
Values
_db.queryFirst(query: string, params: Object[]) :Descrição
Execute uma query SQL diretamente na base de dados e obtém apenas o primeiro registo. Muita cuidado com SQL Injection.
Como Usar
const produtoEncontrado = _db.queryFirst(`
select * from produto
where nome like ?
`, `%${_db.sanitize(_req.getString('termo'))}%`)
_log.info('O primeiro produto encontrado:', produtoEncontrado)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter o registo. |
params | Object[] | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( Values )
O primeiro registo de dados obtido com a query direta à base de dados.
Values
_db.queryFirst(query: string, params: List) :Descrição
Execute uma query SQL diretamente na base de dados e obtém apenas o primeiro registo. Muita cuidado com SQL Injection.
Como Usar
const produtoEncontrado = _db.queryFirst(`
select * from produto
where nome like ?
`, `%${_db.sanitize(_req.getString('termo'))}%`)
_log.info('O primeiro produto encontrado:', produtoEncontrado)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter o registo. |
params | List | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( Values )
O primeiro registo de dados obtido com a query direta à base de dados.
Values) : Values
_db.queryFirst(query: string, params:Descrição
Execute uma query SQL diretamente na base de dados e obtém apenas o primeiro registo. Muita cuidado com SQL Injection.
Como Usar
const produtoEncontrado = _db.queryFirst(`
select * from produto
where nome like ?
`, `%${_db.sanitize(_req.getString('termo'))}%`)
_log.info('O primeiro produto encontrado:', produtoEncontrado)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
query | string | Comando que será executado na base de dados para obter o registo. |
params | Values | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( Values )
O primeiro registo de dados obtido com a query direta à base de dados.
sanitize
_db.sanitize(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar numa query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo seguro para utilizar diretamente em queries.
sanitizeBoolean
_db.sanitizeBoolean(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar como boleano (verdadeiro ou falso) numa query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada como boleano (verdadeiro ou falso) em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo como boleano (verdadeiro ou falso) seguro para utilizar diretamente em queries.
sanitizeFloat
_db.sanitizeFloat(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar como número decimal numa query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada como número decimal em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo como número decimal seguro para utilizar diretamente em queries.
sanitizeInt
_db.sanitizeInt(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar como número inteiro numa query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada como número inteiro em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo como número inteiro seguro para utilizar diretamente em queries.
sanitizeName
_db.sanitizeName(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar como um nome de tabela ou coluna numa query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada como nome de tabela ou coluna em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo como nome de tabela ou coluna seguro para utilizar diretamente em queries.
sanitizePath
_db.sanitizePath(dados: string) : string
Descrição
Certifica que o conteúdo é seguro para injetar como um caminho do nome da tabela seguido por um ponto e então o nome da coluna (tabela.coluna), em query direto à base de dados, previne ataques de SQL Injection.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
dados | string | Informação que precisa ser utilizada como caminho (tabela.nome) em base de dados com risco de SQL Injection. |
Retorno
( string )
Conteúdo como caminho (tabela.nome) seguro para utilizar diretamente em queries.
save
_db.save(arg0: string, arg1: int, arg2: Map) : int
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | int | |
arg2 | Map |
Retorno
( int )
Values) : int
_db.save(arg0: string, arg1: int, arg2:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | int | |
arg2 | Values |
Retorno
( int )
_db.save(arg0: string, arg1: string, arg2: Map) : int
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | string | |
arg2 | Map |
Retorno
( int )
Values) : int
_db.save(arg0: string, arg1: string, arg2:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | string | |
arg2 | Values |
Retorno
( int )
search
DBSearchResult
_db.search(arg0: string, arg1: Map) :Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Map |
Retorno
( DBSearchResult )
DBSearchResult
_db.search(arg0: string, arg1: Map, arg2: boolean) :Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Map | |
arg2 | boolean |
Retorno
( DBSearchResult )
Values) : DBSearchResult
_db.search(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( DBSearchResult )
Values, arg2: boolean) : DBSearchResult
_db.search(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values | |
arg2 | boolean |
Retorno
( DBSearchResult )
sequence
Sequence
_db.sequence() :Retorno
( Sequence )
store
_db.store(arg0: string, arg1: Map) : int
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Map |
Retorno
( int )
Values) : int
_db.store(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( int )
table
Table
_db.table() :Retorno
( Table )
time
_db.time() : Time
Descrição
Obtém a hora atual para ser utilizada em operações de base de dados.
Retorno
( Time )
Hora atual.
_db.time(time: Long) : Time
Descrição
Através do número longo que identifica a hora exata, cria um novo objeto Time para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
time | Long | Número longo referente a hora exato. |
Retorno
( Time )
Novo objeto do tipo: java.sql.Time
_db.time(texto: string) : Time
Descrição
Com o conteúdo de texto obtém o objeto de hora para ser utilizada em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
texto | string | Texto que contém hora no formato: HH:mm:ss |
Retorno
( Time )
Hora obtida do texto.
_db.time(instant: Instant) : Date
Descrição
Através do objeto Instant cria um novo objeto Date com java.sql.Time.from, para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
instant | Instant | Objeto do tipo: java.time.Instant |
Retorno
( Date )
Novo objeto do tipo: java.util.Date
_db.time(localDateTime: LocalTime) : Time
Descrição
Através do objeto LocalDateTime cria um novo objeto Time para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
localDateTime | LocalTime | Objeto do tipo: java.time.LocalDateTime |
Retorno
( Time )
Novo objeto do tipo: java.sql.Time
timestamp
_db.timestamp() : Timestamp
Descrição
Obtém a data e hora atual para ser utilizada em operações de base de dados.
Retorno
( Timestamp )
Data e hora atual.
_db.timestamp(time: Long) : Timestamp
Descrição
Através do número longo que identifica o tempo exato, cria um novo objeto Timestamp para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
time | Long | Número longo referente ao tempo exato. |
Retorno
( Timestamp )
Novo objeto do tipo: java.sql.Timestamp
_db.timestamp(texto: string) : Timestamp
Descrição
Com o conteúdo de texto obtém o objeto de data e hora para ser utilizada em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
texto | string | Texto que contém data e hora no formato: yyyy-MM-dd HH:mm:ss |
Retorno
( Timestamp )
Data e hora obtida do texto.
_db.timestamp(instant: Instant) : Timestamp
Descrição
Através do objeto Instant cria um novo objeto Timestamp para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
instant | Instant | Objeto do tipo: java.time.Instant |
Retorno
( Timestamp )
Novo objeto do tipo: java.sql.Timestamp
_db.timestamp(localDateTime: LocalDateTime) : Timestamp
Descrição
Através do objeto LocalDateTime cria um novo objeto Timestamp para ser utilizado em operações de base de dados.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
localDateTime | LocalDateTime | Objeto do tipo: java.time.LocalDateTime |
Retorno
( Timestamp )
Novo objeto do tipo: java.sql.Timestamp
toFloat
_db.toFloat(arg0: string) : string
Descrição
Garante que é um número com casas decimais válido para ser utilizado diretamente numa query evitando SQL Injection.
Como Usar
const valorMaximoSeguro = _db.toFloat(_req.getString("valor_maximo"))
_out.json(
_db.query(`
select * from produto
where preco < ${valorMaximoSeguro}
`)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como número com casas decimais (float).
toInt
_db.toInt(arg0: string) : string
Descrição
Garante que é um número inteiro válido para ser utilizado diretamente numa query evitando SQL Injection.
Como Usar
const idSeguro = _db.toInt(_req.getString("id"))
_out.json(
_db.query(`
select * from cliente
where id = ${idSeguro}
`)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como número/inteiro.
toIntSequence
_db.toIntSequence(arg0: string) : string
Descrição
Garante que é uma sequência de números separados por vírgula para ser utilizado diretamente numa query evitando SQL Injection.
Como Usar
// Garante que a sequência de IDs é algo como:// 3,5,600,1000
const idsSeguros = _db.toIntSequence(_req.getString("ids"))
_out.json(
_db.query(`
select * from cliente
where id in (${idsSeguros})
`)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Conteúdo sequêncial numérico que é seguro utilizar diretamente em query.
toRawName
_db.toRawName(arg0: string) : string
Descrição
Certifica que o conteúdo passado é um nome válido para ser utilizado em queries diretas à base de dados, se não for então retorna um erro.
Por exemplo válida se o nome está no formato para ser um nome de nome_da_tabela
ou de nome_da_coluna
.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Retorna o nome que é seguro utilizar diretamente em queries.
toRawPath
_db.toRawPath(arg0: string) : string
Descrição
Certifica que o conteúdo passado é um caminho válido para ser utilizado em queries diretas à base de dados, se não for então retorna um erro.
Por exemplo válida se o caminho é compatível com nome_da_tabela
.nome_da_coluna
.
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Retorna o caminho que é seguro utilizar diretamente em queries.
toString
_db.toString() : string
Descrição
Garante que é uma string válida para ser utilizada diretamente numa query evitando SQL Injection.
Como Usar
// Evita SQL Injection
const nomeSeguro = _db.toString(_req.getString('name'))
_out.json(
_db.query(`
select * from client
where name = '${nomeSeguro}'
`)
)
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como string/varchar/texto.
_db.toString(arg0: string) : string
Descrição
Garante que é uma string válida para ser utilizada diretamente numa query evitando SQL Injection.
Como Usar
// Evita SQL Injection
const nomeSeguro = _db.toString(_req.getString('name'))
_out.json(
_db.query(`
select * from client
where name = '${nomeSeguro}'
`)
)
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como string/varchar/texto.
update
_db.update(tabela: string, id: int, dados: Map) : int
Descrição
Executa a atualização de dados existentes de acordo com o id ou uid que vem nos dados que são passados.
Como Usar
var result = _db.update(
"cliente",
1, // ID do registo que será afetado.
_val.map()
.set("name", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
id | int | ID do registo que será afetado pela atualização. |
dados | Map | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
Values) : int
_db.update(tabela: string, uid: int, dados:Descrição
Executa a atualização de dados existentes de acordo com um id específico.
Como Usar
var uid = "98502cff-d1e1-4efc-8efe-840320925316";
var result = _db.update(
"cliente",
uid,
_val.map()
.set("nome", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
uid | int | UID do registo que será afetado pela atualização. |
dados | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
_db.update(tabela: string, uid: string, dados: Map) : int
Descrição
Executa a atualização de dados existentes de acordo com um id específico.
Como Usar
var uid = "98502cff-d1e1-4efc-8efe-840320925316";
var result = _db.update(
"cliente",
uid,
_val.map()
.set("nome", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
uid | string | UID do registo que será afetado pela atualização. |
dados | Map | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
Values) : int
_db.update(tabela: string, uid: string, dados:Descrição
Executa a atualização de dados existentes de acordo com um id específico.
Como Usar
var uid = "98502cff-d1e1-4efc-8efe-840320925316";
var result = _db.update(
"cliente",
uid,
_val.map()
.set("nome", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
uid | string | UID do registo que será afetado pela atualização. |
dados | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
_db.update(tabela: string, dados: Map) : int
Descrição
Executa a atualização de dados existentes de acordo com o id ou uid que vem nos dados que são passados.
Como Usar
var result = _db.update(
"cliente",
_val.map()
.set("id", 1)
.set("name", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
dados | Map | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
Values) : int
_db.update(tabela: string, dados:Descrição
Executa a atualização de dados existentes de acordo com o id ou uid que vem nos dados que são passados.
Como Usar
var result = _db.update(
"cliente",
_val.map()
.set("id", 1)
.set("name", "Sitana")
.set("mail", "admin@sitana.pt")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela que contém os registos que devem ser atualizados. |
dados | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
updateMany
_db.updateMany(arg0: string, arg1: Object[]) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Object[] |
Retorno
( int[] )
_db.updateMany(arg0: string, arg1: List) : int[]
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | List |
Retorno
( int[] )
Values) : int[]
_db.updateMany(arg0: string, arg1:Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
arg0 | string | |
arg1 | Values |
Retorno
( int[] )