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(tabela: string) : java.util.List
Descrição
Seleciona todos os dados de uma tabela.
Como Usar
_db.all('cliente');
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela de onde será executada a query. |
Retorno
( java.util.List )
Os dados encontrados na tabela ou null caso não exista.
batch
_db.batch() : DBBatch
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.
_db.batch(comandoSQL: string) : DBBatch
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
_db.checkExists() : CheckExists
Descrição
Verifica se sequências, tabelas, colunas e indexes existem na base de dados.
Como Usar
if (!_db.checkExists().table("client")) {
_db.table().create(
"client",
_db.column().setName("id").setType("int").setPrimaryKey(true),
_db.column().setName("name").setType("varchar").setNotNull(true).setDefault()
);
}
Retorno
( CheckExists )
column
_db.column() : Column
Descrição
Realiza a manipulação de colunas em base de dados.
Como Usar
if (!_db.checkExists().column("client", "description")) {
_db.column().rename(
"client", // Tabela
"description", // Nome Antigo
"name" // Novo Nome
);
}
Retorno
( Column )
config
_db.config() : Values
Descrição
Obtém a configuração de conexão à base de dados que está a ser utilizada. Os detalhes da conexão está definida no documento de configuração de ambiente da aplicação, mais informações no tutorial sobre Multiplas bases de dados.
Como Usar
_header.contentTypePlain()
const db_PADRAO_Config = _db.getConfig()
_out.print(`A conexão da db PADRÃO é: ${db_PADRAO_Config.toJSON()}\n`)
const db_OUTRA_Config = _db.init("countries").getConfig()
_out.print(`A OUTRA conexão da db é: ${db_OUTRA_Config.toJSON()}\n`)
Retorno
( Values )
Configuração da conexão à base de dados que está a ser utilizada.
date
_db.date() : java.sql.Date
Descrição
Obtém a data atual para ser utilizada em operações de base de dados.
Retorno
( java.sql.Date )
Data atual.
_db.date(time: java.lang.Long) : java.sql.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 | java.lang.Long | Número longo referente a data exata. |
Retorno
( java.sql.Date )
Novo objeto do tipo: java.sql.Date
_db.date(texto: string) : java.sql.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
( java.sql.Date )
Data obtida do texto.
_db.date(instant: java.time.Instant) : java.util.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 | java.time.Instant | Objeto do tipo: java.time.Instant |
Retorno
( java.util.Date )
Novo objeto do tipo: java.util.Date
_db.date(localDateTime: java.time.LocalDate) : java.sql.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 | java.time.LocalDate | Objeto do tipo: java.time.LocalDateTime |
Retorno
( java.sql.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: Config | Exec | Header | Req | Res | Values | DataSchema) : 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 | Config | Exec | Header | Req | Res | Values | DataSchema | Estrutura de dados que deverá ser eliminada baseado no seu ID ou UID. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.delete(tabela: string, dados: Values) : 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 | 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(tabela: string, listaDados: [Ljava.lang.Object;[]) : int[]
Descrição
Executa a eliminação de várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosEliminados = _db.deleteMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
)
.add(_val.map()
.set('id', 2)
)
);
_out.json({dadosEliminados: dadosEliminados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | [Ljava.lang.Object;[] | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos afetados pela eliminação para cada objeto dentro da lista.
_db.deleteMany(tabela: string, listaDados: java.util.List) : int[]
Descrição
Executa a eliminação de várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosEliminados = _db.deleteMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
)
.add(_val.map()
.set('id', 2)
)
);
_out.json({dadosEliminados: dadosEliminados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | java.util.List | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos afetados pela eliminação para cada objeto dentro da lista.
_db.deleteMany(tabela: string, listaDados: Values) : int[]
Descrição
Executa a eliminação de várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosEliminados = _db.deleteMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
)
.add(_val.map()
.set('id', 2)
)
);
_out.json({dadosEliminados: dadosEliminados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | Values | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos afetados pela eliminação para cada objeto dentro da lista.
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: [Ljava.lang.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 | [Ljava.lang.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: java.util.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 | java.util.List | Lista dos 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: Values) : 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 | Values | Lista dos valores dos parâmetros que são injetados no comando. |
Retorno
( int )
Número de linhas afetadas pelo comando executado.
find
_db.find(tabela: string, params: Values) : java.util.List
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
( java.util.List )
Lista dos registos de dados encontrados.
findFirst
_db.findFirst(tabela: string, params: Values) : Values
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
_db.findQuery(tabela: string, params: Values) : string
Descrição
A partir de um objeto que tem a estrutura parecida com uma consulta SQL, gera uma query para ser efectuado um select. 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.findQuery(
"pessoa",
_val.map()
.set(
"where",
_val.map()
.set("email", "pessoa@e-mail.exemplo")
)
)
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
( string )
A query com os parâmetros pronta a ser utilizada.
get
_db.get(tabela: string, id: int) : Values
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.
_db.get(tabela: string, uid: string) : Values
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.
getConfig
_db.getConfig() : Values
Descrição
Obtém a configuração de conexão à base de dados que está a ser utilizada. Os detalhes da conexão está definida no documento de configuração de ambiente da aplicação, mais informações no tutorial sobre Multiplas bases de dados.
Como Usar
_header.contentTypePlain()
const db_PADRAO_Config = _db.getConfig()
_out.print(`A conexão da db PADRÃO é: ${db_PADRAO_Config.toJSON()}\n`)
const db_OUTRA_Config = _db.init("countries").getConfig()
_out.print(`A OUTRA conexão da db é: ${db_OUTRA_Config.toJSON()}\n`)
Retorno
( Values )
Configuração da conexão à base de dados que está a ser utilizada.
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 deve estar definida 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
_db.index() : Index
Descrição
Realiza a manipulação de indexes em base de dados.
Como Usar
if (!_db.checkExists().index("client", "name")) {
_db.index().create(
"client", // Nome da Tabela
"name" // Nome da Coluna
); // O index client_name_idx será criado criado.
}
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: Config | Exec | Header | Req | Res | Values | DataSchema) : 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 | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
_db.insert(tabela: string, dados: Values) : 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 | Values | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
insertIfNotExists
_db.insertIfNotExists(tabela: string, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : int
Descrição
Executa a inserção de um valor caso ele não exista ou retorna o ID caso já exista.
Como Usar
var dadosInseridos = _db.insertIfNotExists(
'worker',
_val.map()
.set('name','Netuno')
);
_out.json({dadosInseridos: dadosInseridos})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
dados | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
ID do dado que foi inserido ou ID do dado já existente.
_db.insertIfNotExists(tabela: string, dados: Values) : int
Descrição
Executa a inserção de um valor caso ele não exista ou retorna o ID caso já exista.
Como Usar
var dadosInseridos = _db.insertIfNotExists(
'worker',
_val.map()
.set('name','Netuno')
);
_out.json({dadosInseridos: dadosInseridos})
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 )
ID do dado que foi inserido ou ID do dado já existente.
insertMany
_db.insertMany(tabela: string, listaDados: [Ljava.lang.Object;[]) : int[]
Descrição
Executa a inserção várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores.
Como Usar
_db.insertMany(
'worker',
_val.list()
.add(_val.map()
.set('name','Netuno')
)
.add(_val.map()
.set('name','Sitana')
)
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | [Ljava.lang.Object;[] | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com os IDs dos dados inseridos.
_db.insertMany(tabela: string, listaDados: java.util.List) : int[]
Descrição
Executa a inserção várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores.
Como Usar
_db.insertMany(
'worker',
_val.list()
.add(_val.map()
.set('name','Netuno')
)
.add(_val.map()
.set('name','Sitana')
)
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | java.util.List | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com os IDs dos dados inseridos.
_db.insertMany(tabela: string, listaDados: Values) : int[]
Descrição
Executa a inserção várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores.
Como Usar
_db.insertMany(
'worker',
_val.list()
.add(_val.map()
.set('name','Netuno')
)
.add(_val.map()
.set('name','Sitana')
)
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | Values | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com os IDs dos dados inseridos.
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.
key
_db.key() : 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 deve estar definida 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.
param
_db.param(type: string) : string
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
type | string |
Retorno
( string )
query
_db.query(query: string) : java.util.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 |
---|---|---|
query | string | Comando que será executado na base de dados para obter registos. |
Retorno
( java.util.List )
Lista de dados obtidos com a query direta à base de dados.
_db.query(query: string, params: [Ljava.lang.Object;[]) : java.util.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 | [Ljava.lang.Object;[] | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( java.util.List )
Lista de dados obtidos com a query direta à base de dados.
_db.query(query: string, params: java.util.List) : java.util.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 | java.util.List | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( java.util.List )
Lista de dados obtidos com a query direta à base de dados.
_db.query(query: string, params: Values) : java.util.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 | Values | Lista de parâmetros de valores que serão injetados no comando (query) de base de dados. |
Retorno
( java.util.List )
Lista de dados obtidos com a query direta à base de dados.
queryFirst
_db.queryFirst(query: string) : Values
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.
_db.queryFirst(query: string, params: [Ljava.lang.Object;[]) : Values
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 | [Ljava.lang.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.
_db.queryFirst(query: string, params: java.util.List) : Values
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 | java.util.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.
_db.queryFirst(query: string, params: Values) : Values
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(tabela: string, uid: int, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : int
Descrição
Executa a inserção ou atualização de um registo na base de dados baseado no UID.
Como Usar
// Executa a adição através do UID
const uid = "1d8722f4-fa28-4a08-8098-6dd5cab1b212";
const result = _db.save(
"cliente",
uid,
_val.map()
.set("name", "nome")
.set("mail", "mail@netuno.org")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
uid | int | UID do registo a eliminar. |
dados | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.save(tabela: string, uid: int, dados: Values) : int
Descrição
Executa a inserção ou atualização de um registo na base de dados baseado no UID.
Como Usar
// Executa a adição através do UID
const uid = "1d8722f4-fa28-4a08-8098-6dd5cab1b212";
const result = _db.save(
"cliente",
uid,
_val.map()
.set("name", "nome")
.set("mail", "mail@netuno.org")
);
_out.json(
"result": result
);
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados. |
uid | int | UID do registo a eliminar. |
dados | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.save(tabela: string, uid: string, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : int
Descrição
Executa a inserção ou atualização de um registo na base de dados baseado no UID.
Como Usar
// Executa a adição através do UID
const uid = "1d8722f4-fa28-4a08-8098-6dd5cab1b212";
const result = _db.save(
"cliente",
uid,
_val.map()
.set("name", "nome")
.set("mail", "mail@netuno.org")
);
_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. |
dados | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
_db.save(tabela: string, uid: string, dados: Values) : int
Descrição
Executa a inserção ou atualização de um registo na base de dados baseado no UID.
Como Usar
// Executa a adição através do UID
const uid = "1d8722f4-fa28-4a08-8098-6dd5cab1b212";
const result = _db.save(
"cliente",
uid,
_val.map()
.set("name", "nome")
.set("mail", "mail@netuno.org")
);
_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. |
dados | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela eliminação.
search
_db.search(tabela: string, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : DBSearchResult
Descrição
Executa uma pesquisa a uma tabela retornando um objeto do tipo DBSearchResult.
Como Usar
var query = _db.search(
'worker',
_val.map()
.set('active','1'));
_out.json({data: query.getResults(),total: query.getTotal()});
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve obter os dados. |
dados | Config | Exec | Header | Req | Res | Values | DataSchema | Dados para se efectuar a pesquisa. |
Retorno
( DBSearchResult )
Objeto do tipo DBSearchResult.
_db.search(table: string, data: Config | Exec | Header | Req | Res | Values | DataSchema, wildcards: boolean) : DBSearchResult
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
table | string | |
data | Config | Exec | Header | Req | Res | Values | DataSchema | |
wildcards | boolean |
Retorno
( DBSearchResult )
_db.search(tabela: string, dados: Values) : DBSearchResult
Descrição
Executa uma pesquisa a uma tabela retornando um objeto do tipo DBSearchResult.
Como Usar
var query = _db.search(
'worker',
_val.map()
.set('active','1'));
_out.json({data: query.getResults(),total: query.getTotal()});
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve obter os dados. |
dados | Values | Dados para se efectuar a pesquisa. |
Retorno
( DBSearchResult )
Objeto do tipo DBSearchResult.
_db.search(table: string, data: Values, wildcards: boolean) : DBSearchResult
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
table | string | |
data | Values | |
wildcards | boolean |
Retorno
( DBSearchResult )
sequence
_db.sequence() : Sequence
Descrição
Realiza a manipulação de sequências em base de dados.
Como Usar
if (!_db.checkExists().sequence("client", "name")) {
_db.index().create(
"client", // Nome da Tabela
"name" // Nome da Coluna
); // O index client_name_idx será criado criado.
}
Retorno
( Sequence )
store
_db.store(tabela: string, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : int
Descrição
Executa a atualização de um valor caso ele exista baseando-se numa chave primária ou uma inserção quando nenhum dado existe com a mesma chave primária. Este tipo de operação é útil quando não é possível utilizar IDs em determinadas operações.
Como Usar
// Se existir algum dado na tabela worker com o campo name (a chave primária nesta tabela)// igual ao inserido na query todos os dados serão atualizados// Se não existir algum dado a informação será inserida na tabelavar dadosStore = _db.store(
'worker',
_val.map()
.set('name','Netuno')
);
_out.json({dadosStore: dadosStore})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
dados | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que será inserido. |
Retorno
( int )
ID do dado que foi inserido ou ID do dado já existente.
_db.store(tabela: string, dados: Values) : int
Descrição
Executa a atualização de um valor caso ele exista baseando-se numa chave primária ou uma inserção quando nenhum dado existe com a mesma chave primária. Este tipo de operação é útil quando não é possível utilizar IDs em determinadas operações.
Como Usar
// Se existir algum dado na tabela worker com o campo name (a chave primária nesta tabela)// igual ao inserido na query todos os dados serão atualizados// Se não existir algum dado a informação será inserida na tabelavar dadosStore = _db.store(
'worker',
_val.map()
.set('name','Netuno')
);
_out.json({dadosStore: dadosStore})
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 )
ID do dado que foi inserido ou ID do dado já existente.
table
_db.table() : Table
Descrição
Verifica se sequências, tabelas, colunas e indexes existem na base de dados.
Como Usar
if (!_db.checkExists().table("client")) {
_db.table().create(
"client",
_db.column().setName("id").setType("int").setPrimaryKey(true),
_db.column().setName("name").setType("varchar").setNotNull(true).setDefault()
);
}
Retorno
( Table )
time
_db.time() : java.sql.Time
Descrição
Obtém a hora atual para ser utilizada em operações de base de dados.
Retorno
( java.sql.Time )
Hora atual.
_db.time(time: java.lang.Long) : java.sql.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 | java.lang.Long | Número longo referente a hora exato. |
Retorno
( java.sql.Time )
Novo objeto do tipo: java.sql.Time
_db.time(texto: string) : java.sql.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
( java.sql.Time )
Hora obtida do texto.
_db.time(instant: java.time.Instant) : java.util.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 | java.time.Instant | Objeto do tipo: java.time.Instant |
Retorno
( java.util.Date )
Novo objeto do tipo: java.util.Date
_db.time(localDateTime: java.time.LocalTime) : java.sql.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 | java.time.LocalTime | Objeto do tipo: java.time.LocalDateTime |
Retorno
( java.sql.Time )
Novo objeto do tipo: java.sql.Time
timestamp
_db.timestamp() : java.sql.Timestamp
Descrição
Obtém a data e hora atual para ser utilizada em operações de base de dados.
Retorno
( java.sql.Timestamp )
Data e hora atual.
_db.timestamp(time: java.lang.Long) : java.sql.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 | java.lang.Long | Número longo referente ao tempo exato. |
Retorno
( java.sql.Timestamp )
Novo objeto do tipo: java.sql.Timestamp
_db.timestamp(texto: string) : java.sql.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
( java.sql.Timestamp )
Data e hora obtida do texto.
_db.timestamp(instant: java.time.Instant) : java.sql.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 | java.time.Instant | Objeto do tipo: java.time.Instant |
Retorno
( java.sql.Timestamp )
Novo objeto do tipo: java.sql.Timestamp
_db.timestamp(localDateTime: java.time.LocalDateTime) : java.sql.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 | java.time.LocalDateTime | Objeto do tipo: java.time.LocalDateTime |
Retorno
( java.sql.Timestamp )
Novo objeto do tipo: java.sql.Timestamp
toFloat
_db.toFloat(texto: 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 |
---|---|---|
texto | string | Número que será verificado se é float para utilizar na query. |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como número com casas decimais (float).
toInt
_db.toInt(texto: 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 |
---|---|---|
texto | string | Número que será verificado se é inteiro para utilizar na query. |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como número/inteiro.
toIntSequence
_db.toIntSequence(texto: 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 |
---|---|---|
texto | string | Números que serão verificados se são inteiros para utilizar na query. |
Retorno
( string )
Conteúdo sequêncial numérico que é seguro utilizar diretamente em query.
toRawName
_db.toRawName(texto: 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
.
Como Usar
var toRawName = _db.toRawName('worker')
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
texto | string | Nome que será verificado se pode ser utilizado como nome de tabela ou nome de coluna. |
Retorno
( string )
Retorna o nome que é seguro utilizar diretamente em queries.
toRawPath
_db.toRawPath(texto: 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
.
Como Usar
var rawPath = _db.toRawPath('worker.name')
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
texto | string | String que será verificada para utilizar como caminho em queries à BD. |
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(texto: 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 |
---|---|---|
texto | string | String que será verificada para utilizar diretamente em queries à BD. |
Retorno
( string )
Conteúdo que é seguro utilizar diretamente em query como string/varchar/texto.
update
_db.update(tabela: string, id: int, dados: Config | Exec | Header | Req | Res | Values | DataSchema) : 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 | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
_db.update(tabela: string, id: int, dados: Values) : 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 | 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: Config | Exec | Header | Req | Res | Values | DataSchema) : 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 | Config | Exec | Header | Req | Res | Values | DataSchema | 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: Values) : 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 | 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: Config | Exec | Header | Req | Res | Values | DataSchema) : 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 | Config | Exec | Header | Req | Res | Values | DataSchema | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
_db.update(tabela: string, dados: Values) : 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 | Values | Objeto com a estrutura de dados que deverá ser atualizado. |
Retorno
( int )
Quantidade de registos afetados pela atualização.
updateMany
_db.updateMany(tabela: string, listaDados: [Ljava.lang.Object;[]) : int[]
Descrição
Executa a atualização várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosAlterados = _db.updateMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
.set('name','Netuno')
)
.add(_val.map()
.set('id', 2)
.set('name','Sitana')
)
);
_out.json({dados: dadosAlterados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | [Ljava.lang.Object;[] | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos alterados para cada objeto dentro da lista.
_db.updateMany(tabela: string, listaDados: java.util.List) : int[]
Descrição
Executa a atualização várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosAlterados = _db.updateMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
.set('name','Netuno')
)
.add(_val.map()
.set('id', 2)
.set('name','Sitana')
)
);
_out.json({dados: dadosAlterados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | java.util.List | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos alterados para cada objeto dentro da lista.
_db.updateMany(tabela: string, listaDados: Values) : int[]
Descrição
Executa a atualização várias linhas numa tabela atravás de um Array de Objetos ou uma Lista de Valores. É necessário que cada objeto possua o id ou uid do dado que será alterado
Como Usar
var dadosAlterados = _db.updateMany(
'worker',
_val.list()
.add(_val.map()
.set('id', 1)
.set('name','Netuno')
)
.add(_val.map()
.set('id', 2)
.set('name','Sitana')
)
);
_out.json({dados: dadosAlterados})
Atributos
NOME | TIPO | DESCRIÇÃO |
---|---|---|
tabela | string | Nome da tabela na base de dados que deve receber os dados que serão inseridos. |
listaDados | Values | Array ou lista de objetos com a estrutura de dados que será inserida. |
Retorno
( int[] )
Array com a quantidade de registos alterados para cada objeto dentro da lista.