ObjectSQLite
Os obxectos SQLite son módulos incorporadosdbMembro da base de datos SQLite, responsable principalmente da conexión e funcionamento da base de datos SQLite, e pode usarse para a creación, consulta, inserción, actualización e outras operacións da base de datos SQLite. Ao mesmo tempo, o obxecto SQLite tamén ofrece algunhas operacións avanzadas como copia de seguridade e formato SQL. Os obxectos de conexión SQLite tamén admiten operacións de transacción
En aplicacións prácticas, adoitamos crear táboas de datos de tipo SQLite en función das necesidades empresariais e despois realizamos operacións como engadir, eliminar, modificar e consultar datos, por exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22var db = require('db')
// open a SQLite database
var sqlite = db.openSQLite('test.db')
// use execute method to create a table
sqlite.execute('CREATE TABLE test (id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, age INT NOT NULL)')
// use execute method to insert data
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 1, 'Alice', 18)
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 2, 'Bob', 20)
sqlite.execute('INSERT INTO test (id, name, age) VALUES (?, ?, ?)', 3, 'Charlie', 22)
// use execute method to query data
var rs = sqlite.execute('SELECT * FROM test')
console.log(rs)
// use execute method to update data
sqlite.execute('UPDATE test SET name=?, age=? WHERE id=?', 'Marry', 19, 1)
// use execute method to delete data
sqlite.execute('DELETE FROM test WHERE id=?', 2)
SQLite tamén ten un módulo vec_index incorporado.Podemos crear un índice no campo de vectores da base de datos SQLite, buscar en base ao campo de vectores e obter o conxunto de vectores máis semellante ao vector de destino. Admite o uso de matrices de tipo numérico para representar vectores, como [1, 2, 3], e admite dimensións vectoriais. Ademais, vec_index admite operacións por lotes dentro dunha transacción.
Aquí tes un exemplo sinxelo:
1
2
3
4
5
6
7
8var db = require('db');
var path = require('path');
var conn = db.openSQLite(path.join(__dirname, 'vec_test.db'));
conn.execute('create virtual table vindex using vec_index(title(3), description(3))');
conn.execute(`insert into vindex(title, description, rowid) values("[1,2,3]", "[3,4,5]", 3)`);
A recuperación de vectores pódese realizar usando a función vec_search, por exemplo:
1
2
3
4var key = [1, 2, 5.1234];
var limit = 1;
var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}")`);
vec_search devolve unha colección de vectores máis próximos e unha matriz de distancias, onde as distancias están ordenadas de pequena a grande. Se precisa devolver varios conxuntos de vectores máis próximos, pode usar o parámetro :limit, por exemplo:
1
2
3
4var key = [1, 2, 5.1234];
var limit = 1;
var res = conn.execute(`select rowid, distance from vindex where vec_search(title, "${JSON.stringify(key)}:10")`);
relación de herdanza
propiedades dos membros
fileName
Cadea, nome do ficheiro de base de datos actual
1readonly String SQLite.fileName;
timeout
Enteiro, consulta e establece o tempo de espera da base de datos, en milisegundos
1Integer SQLite.timeout;
type
String, consulta o tipo de base de datos de conexión actual
1readonly String SQLite.type;
función de membro
backup
Fai unha copia de seguranza da base de datos actual nun ficheiro novo
1SQLite.backup(String fileName) async;
Parámetros de chamada:
- fileName: Cadea, especifique o nome do ficheiro da base de datos de copia de seguridade
close
Pecha a conexión actual da base de datos
1SQLite.close() async;
use
Seleccione a base de datos predeterminada para a conexión de base de datos actual
1SQLite.use(String dbName) async;
Parámetros de chamada:
- dbName: Cadea, especifique o nome da base de datos
begin
Iniciar unha transacción na conexión de base de datos actual
1SQLite.begin(String point = "") async;
Parámetros de chamada:
- point: Cadea, especifica o nome da transacción, non especificado por defecto
commit
Confirme a transacción na conexión de base de datos actual
1SQLite.commit(String point = "") async;
Parámetros de chamada:
- point: Cadea, especifica o nome da transacción, non especificado por defecto
rollback
Revertir unha transacción na conexión de base de datos actual
1SQLite.rollback(String point = "") async;
Parámetros de chamada:
- point: Cadea, especifica o nome da transacción, non especificado por defecto
trans
Introduza unha transacción para executar unha función e comite ou retroceda en función da execución da función.
1Boolean SQLite.trans(Function func);
Parámetros de chamada:
- func: Función, unha función executada de forma transaccional
Resultados de devolución:
- Boolean, devolve se a transacción está confirmada, devolve verdadeiro para a confirmación normal, devolve false para a recuperación e arroxa un erro se a transacción sae mal.
Hai tres resultados da execución da función:
- A función volve normalmente, incluíndo o final da operación e o retorno activo, momento no que a transacción confirmarase automaticamente.
- A función devolve false e a transacción será revertida
- Erro na operación da función, a transacción retrocedeuse automaticamente
Introduza unha transacción para executar unha función e comite ou retroceda en función da execución da función.
1
2Boolean SQLite.trans(String point,
Function func);
Parámetros de chamada:
- point: Cadea, especifica o nome da transacción
- func: Función, unha función executada de forma transaccional
Resultados de devolución:
- Boolean, devolve se a transacción está confirmada, devolve verdadeiro para a confirmación normal, devolve false para a recuperación e arroxa un erro se a transacción sae mal.
Hai tres resultados da execución da función:
- A función volve normalmente, incluíndo o final da operación e o retorno activo, momento no que a transacción confirmarase automaticamente.
- A función devolve false e a transacción será revertida
- Erro na operación da función, a transacción retrocedeuse automaticamente
execute
Execute un comando sql e devolve o resultado da execución
1NArray SQLite.execute(String sql) async;
Parámetros de chamada:
- sql: Corda, corda
Resultados de devolución:
- NArray, devolve unha matriz que contén rexistros de resultados. Se a solicitude é UPDATE ou INSERT, o resultado devolto tamén incluirá afectados e insertId. mssql non admite insertId.
Execute un comando sql e devolve o resultado da execución. A cadea pódese formatar segundo os parámetros.
1
2NArray SQLite.execute(String sql,
...args) async;
Parámetros de chamada:
- sql: A cadea, a cadea de formato e os parámetros opcionais especifícanse con ?. Por exemplo: 'SELECT FROM TEST WHERE [id]=?'
- args: ..., lista de parámetros opcional
Resultados de devolución:
- NArray, devolve unha matriz que contén rexistros de resultados. Se a solicitude é UPDATE ou INSERT, o resultado devolto tamén incluirá afectados e insertId. mssql non admite insertId.
createTable
Crear táboa de datos
1SQLite.createTable(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
dropTable
Eliminar a táboa de datos
1SQLite.dropTable(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
createIndex
Crear índice de táboa de datos
1SQLite.createIndex(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
dropIndex
Eliminar o índice da táboa de datos
1SQLite.dropIndex(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
insert
Insire novo rexistro
1Number SQLite.insert(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
Resultados de devolución:
- Number, devolve o id que contén a inserción ou 0 se o motor non o admite.
find
Consulta os datos en función das condicións especificadas
1NArray SQLite.find(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
Resultados de devolución:
- NArray, devolve rexistros que conteñen resultados
count
Conta o número de rexistros de datos en función das condicións especificadas
1Integer SQLite.count(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
Resultados de devolución:
- Integer, devolve o número de rexistros que conteñen o resultado
update
Actualizar os datos en función das condicións especificadas
1Integer SQLite.update(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros
Resultados de devolución:
- Integer, devolve o número de rexistros que conteñen actualizacións
remove
Elimina os datos en función das condicións especificadas
1Integer SQLite.remove(Object opts) async;
Parámetros de chamada:
- opts: Obxecto, lista de parámetros opcional
Resultados de devolución:
- Integer, devolve o número de rexistros que conteñen actualizacións
format
Formatear un comando sql e devolver o resultado formateado
1
2String SQLite.format(String method,
Object opts);
Parámetros de chamada:
- method: String, especifica o método solicitado
- opts: Obxecto, lista de parámetros opcional
Resultados de devolución:
- String, devolve o comando sql con formato
Formatear un comando sql e devolver o resultado formateado
1
2String SQLite.format(String sql,
...args);
Parámetros de chamada:
- sql: A cadea, a cadea de formato e os parámetros opcionais especifícanse con ?. Por exemplo: 'SELECT FROM TEST WHERE [id]=?'
- args: ..., lista de parámetros opcional
Resultados de devolución:
- String, devolve o comando sql con formato
toString
Devolve a representación en cadea do obxecto. Polo xeral, devólvese "[Obxecto nativo]". O obxecto pódese volver implementar segundo as súas propias características.
1String SQLite.toString();
Resultados de devolución:
- String, devolve a representación en cadea do obxecto
toJSON
Devolve unha representación en formato JSON do obxecto, devolvendo xeralmente unha colección de propiedades lexibles definidas polo obxecto.
1Value SQLite.toJSON(String key = "");
Parámetros de chamada:
- key: Cadena, non usada
Resultados de devolución:
- Value, devolve un valor que contén JSON serializable