ObjetoSQLite
Los objetos SQLite son módulos integrados.dbMiembro de la base de datos SQLite, principal responsable de la conexión y operación de la base de datos SQLite, y puede usarse para la creación, consulta, inserción, actualización y otras operaciones de la base de datos SQLite. Al mismo tiempo, el objeto SQLite también proporciona algunas operaciones avanzadas, como realizar copias de seguridad y formatear SQL. Los objetos de conexión SQLite también admiten operaciones de transacción.
En aplicaciones prácticas, generalmente creamos tablas de datos de tipo SQLite según las necesidades comerciales y luego realizamos operaciones como agregar, eliminar, modificar y consultar datos, por ejemplo:
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 también tiene un módulo vec_index incorporado. Podemos crear un índice en el campo vectorial en la base de datos SQLite, buscar según el campo vectorial y obtener el conjunto de vectores que sea más similar al vector de destino. Admite el uso de matrices de tipo numérico para representar vectores, como [1, 2, 3], y admite dimensiones vectoriales. Además, vec_index admite operaciones por lotes dentro de una transacción.
He aquí un ejemplo sencillo:
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)`);
La recuperación de vectores se puede realizar utilizando la función vec_search, por ejemplo:
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 devuelve una colección de vectores más cercanos y una matriz de distancias, donde las distancias están ordenadas de pequeña a grande. Si necesita devolver varios conjuntos de vectores más cercanos, puede utilizar el parámetro :limit, por ejemplo:
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 herencia
propiedades de miembros
fileName
Cadena, nombre del archivo de base de datos actual
1readonly String SQLite.fileName;
timeout
Entero, consultar y establecer el tiempo de espera de la base de datos, en milisegundos
1Integer SQLite.timeout;
type
Cadena, consulta el tipo de base de datos de conexión actual
1readonly String SQLite.type;
función miembro
backup
Haga una copia de seguridad de la base de datos actual en un archivo nuevo
1SQLite.backup(String fileName) async;
Parámetros de llamada:
- fileName: Cadena, especifique el nombre del archivo de la base de datos de respaldo
close
Cerrar la conexión de base de datos actual
1SQLite.close() async;
use
Seleccione la base de datos predeterminada para la conexión de base de datos actual
1SQLite.use(String dbName) async;
Parámetros de llamada:
- dbName: Cadena, especifique el nombre de la base de datos
begin
Iniciar una transacción en la conexión de base de datos actual
1SQLite.begin(String point = "") async;
Parámetros de llamada:
- point: Cadena, especifica el nombre de la transacción, no especificado por defecto
commit
Confirmar la transacción en la conexión de base de datos actual
1SQLite.commit(String point = "") async;
Parámetros de llamada:
- point: Cadena, especifica el nombre de la transacción, no especificado por defecto
rollback
Revertir una transacción en la conexión de base de datos actual
1SQLite.rollback(String point = "") async;
Parámetros de llamada:
- point: Cadena, especifica el nombre de la transacción, no especificado por defecto
trans
Ingrese una transacción para ejecutar una función y confirme o revierta según la ejecución de la función.
1Boolean SQLite.trans(Function func);
Parámetros de llamada:
- func: Función, una función ejecutada de forma transaccional
Resultados de devolución:
- Boolean, devuelve si la transacción se ha confirmado, devuelve verdadero para una confirmación normal, devuelve falso para una reversión y arroja un error si la transacción sale mal.
Hay tres resultados de la ejecución de la función:
- La función regresa normalmente, incluido el final de la operación y el retorno activo, momento en el cual la transacción se confirmará automáticamente.
- La función devuelve falso y la transacción se revertirá
- Error de operación de función, transacción revertida automáticamente
Ingrese una transacción para ejecutar una función y confirme o revierta según la ejecución de la función.
1
2Boolean SQLite.trans(String point,
Function func);
Parámetros de llamada:
- point: Cadena, especifica el nombre de la transacción
- func: Función, una función ejecutada de forma transaccional
Resultados de devolución:
- Boolean, devuelve si la transacción se ha confirmado, devuelve verdadero para una confirmación normal, devuelve falso para una reversión y arroja un error si la transacción sale mal.
Hay tres resultados de la ejecución de la función:
- La función regresa normalmente, incluido el final de la operación y el retorno activo, momento en el cual la transacción se confirmará automáticamente.
- La función devuelve falso y la transacción se revertirá
- Error de operación de función, transacción revertida automáticamente
execute
Ejecute un comando sql y devuelva el resultado de la ejecución
1NArray SQLite.execute(String sql) async;
Parámetros de llamada:
- sql: Cuerda, cuerda
Resultados de devolución:
- NArray, devuelve una matriz que contiene registros de resultados. Si la solicitud es ACTUALIZAR o INSERTAR, el resultado devuelto también incluirá afectado e insertId. mssql no admite insertId.
Ejecute un comando sql y devuelva el resultado de la ejecución. La cadena se puede formatear de acuerdo con los parámetros.
1
2NArray SQLite.execute(String sql,
...args) async;
Parámetros de llamada:
- sql: Cadena, cadena de formato, los parámetros opcionales se especifican con ?. Por ejemplo: 'SELECCIONAR DE LA PRUEBA DONDE [id]=?'
- args: ..., lista de parámetros opcionales
Resultados de devolución:
- NArray, devuelve una matriz que contiene registros de resultados. Si la solicitud es ACTUALIZAR o INSERTAR, el resultado devuelto también incluirá afectado e insertId. mssql no admite insertId.
createTable
Crear tabla de datos
1SQLite.createTable(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
dropTable
Eliminar tabla de datos
1SQLite.dropTable(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
createIndex
Crear índice de tabla de datos
1SQLite.createIndex(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
dropIndex
Eliminar índice de tabla de datos
1SQLite.dropIndex(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
insert
Insertar nuevo registro
1Number SQLite.insert(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
Resultados de devolución:
- Number, devuelve la identificación que contiene la inserción, o 0 si el motor no lo admite.
find
Consultar datos según condiciones específicas.
1NArray SQLite.find(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
Resultados de devolución:
- NArray, devuelve registros que contienen resultados
count
Cuente el número de registros de datos según las condiciones especificadas
1Integer SQLite.count(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
Resultados de devolución:
- Integer, devuelve el número de registros que contienen el resultado
update
Actualizar datos según condiciones específicas
1Integer SQLite.update(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros
Resultados de devolución:
- Integer, devuelve el número de registros que contienen actualizaciones
remove
Eliminar datos según condiciones específicas
1Integer SQLite.remove(Object opts) async;
Parámetros de llamada:
- opts: Objeto, lista de parámetros opcionales
Resultados de devolución:
- Integer, devuelve el número de registros que contienen actualizaciones
format
Formatee un comando SQL y devuelva el resultado formateado
1
2String SQLite.format(String method,
Object opts);
Parámetros de llamada:
- method: Cadena, especifica el método solicitado
- opts: Objeto, lista de parámetros opcionales
Resultados de devolución:
- String, devuelve el comando sql formateado
Formatee un comando SQL y devuelva el resultado formateado
1
2String SQLite.format(String sql,
...args);
Parámetros de llamada:
- sql: Cadena, cadena de formato, los parámetros opcionales se especifican con ?. Por ejemplo: 'SELECCIONAR DE LA PRUEBA DONDE [id]=?'
- args: ..., lista de parámetros opcionales
Resultados de devolución:
- String, devuelve el comando sql formateado
toString
Devuelve la representación de cadena del objeto. Generalmente, se devuelve "[Objeto nativo]". El objeto se puede volver a implementar de acuerdo con sus propias características.
1String SQLite.toString();
Resultados de devolución:
- String, devuelve la representación de cadena del objeto
toJSON
Devuelve una representación en formato JSON del objeto, que generalmente devuelve una colección de propiedades legibles definidas por el objeto.
1Value SQLite.toJSON(String key = "");
Parámetros de llamada:
- key: Cadena, no utilizada
Resultados de devolución:
- Value, devuelve un valor que contiene JSON serializable