ObjectSQLite
Gli oggetti SQLite sono moduli integratidbUn membro del database SQLite, principalmente responsabile della connessione e del funzionamento del database SQLite e può essere utilizzato per la creazione, l'interrogazione, l'inserimento, l'aggiornamento e altre operazioni del database SQLite. Allo stesso tempo, l'oggetto SQLite fornisce anche alcune operazioni avanzate come il backup e la formattazione SQL. Gli oggetti di connessione SQLite supportano anche le operazioni di transazione
Nelle applicazioni pratiche, solitamente creiamo tabelle di dati di tipo SQLite in base alle esigenze aziendali, quindi eseguiamo operazioni come l'aggiunta, l'eliminazione, la modifica e l'interrogazione dei dati, ad esempio:
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 ha anche un modulo vec_index integrato: possiamo creare un indice sul campo vettoriale nel database SQLite, effettuare una ricerca in base al campo vettoriale e ottenere il set di vettori più simile al vettore di destinazione. Supporta l'utilizzo di matrici di tipo numerico per rappresentare i vettori, come [1, 2, 3] e supporta le dimensioni dei vettori. Inoltre, vec_index supporta operazioni batch all'interno di una transazione.
Ecco un semplice esempio:
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)`);
Il recupero dei vettori può essere eseguito utilizzando la funzione vec_search, ad esempio:
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 restituisce una raccolta di vettori più vicini e un array di distanze, dove le distanze sono ordinate da piccole a grandi. Se è necessario restituire più set di vettori più vicini, è possibile utilizzare il parametro :limit, ad esempio:
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")`);
rapporto ereditario
proprietà dei membri
fileName
Stringa, nome del file del database corrente
1readonly String SQLite.fileName;
timeout
Intero, interroga e imposta il timeout del database, in millisecondi
1Integer SQLite.timeout;
type
String, interroga il tipo di database di connessione corrente
1readonly String SQLite.type;
funzione membro
backup
Eseguire il backup del database corrente in un nuovo file
1SQLite.backup(String fileName) async;
Parametri di chiamata:
- fileName: Stringa, specifica il nome del file del database di backup
close
Chiude la connessione al database corrente
1SQLite.close() async;
use
Seleziona il database predefinito per la connessione al database corrente
1SQLite.use(String dbName) async;
Parametri di chiamata:
- dbName: Stringa, specifica il nome del database
begin
Avvia una transazione sulla connessione al database corrente
1SQLite.begin(String point = "") async;
Parametri di chiamata:
- point: String, specifica il nome della transazione, non specificato per impostazione predefinita
commit
Effettua il commit della transazione sulla connessione al database corrente
1SQLite.commit(String point = "") async;
Parametri di chiamata:
- point: String, specifica il nome della transazione, non specificato per impostazione predefinita
rollback
Rollback di una transazione sulla connessione al database corrente
1SQLite.rollback(String point = "") async;
Parametri di chiamata:
- point: String, specifica il nome della transazione, non specificato per impostazione predefinita
trans
Immettere una transazione per eseguire una funzione ed eseguire il commit o il rollback in base all'esecuzione della funzione.
1Boolean SQLite.trans(Function func);
Parametri di chiamata:
- func: Funzione, una funzione eseguita in modo transazionale
Risultati restituiti:
- Boolean, restituisce se la transazione è stata confermata, restituisce true per il commit normale, restituisce false per il rollback e genera un errore se la transazione va male.
Ci sono tre risultati dell'esecuzione della funzione:
- La funzione restituisce normalmente, inclusa la fine dell'operazione e il reso attivo, momento in cui la transazione verrà automaticamente impegnata.
- La funzione restituisce false e la transazione verrà annullata
- Errore di operazione della funzione, transazione annullata automaticamente
Immettere una transazione per eseguire una funzione ed eseguire il commit o il rollback in base all'esecuzione della funzione.
1
2Boolean SQLite.trans(String point,
Function func);
Parametri di chiamata:
- point: String, specifica il nome della transazione
- func: Funzione, una funzione eseguita in modo transazionale
Risultati restituiti:
- Boolean, restituisce se la transazione è stata confermata, restituisce true per il commit normale, restituisce false per il rollback e genera un errore se la transazione va male.
Ci sono tre risultati dell'esecuzione della funzione:
- La funzione restituisce normalmente, inclusa la fine dell'operazione e il reso attivo, momento in cui la transazione verrà automaticamente impegnata.
- La funzione restituisce false e la transazione verrà annullata
- Errore di operazione della funzione, transazione annullata automaticamente
execute
Esegui un comando SQL e restituisce il risultato dell'esecuzione
1NArray SQLite.execute(String sql) async;
Parametri di chiamata:
- sql: corda, corda
Risultati restituiti:
- NArray, restituisce un array contenente i record dei risultati. Se la richiesta è UPDATE o INSERT, il risultato restituito includerà anche l'elemento interessato e l'insertId. mssql non supporta l'insertId.
Esegui un comando sql e restituisce il risultato dell'esecuzione. La stringa può essere formattata in base ai parametri.
1
2NArray SQLite.execute(String sql,
...args) async;
Parametri di chiamata:
- sql: Stringa, stringa di formato, parametri opzionali vengono specificati con ?. Ad esempio: "SELECT FROM TEST WHERE [id]=?"
- args: ..., elenco parametri opzionale
Risultati restituiti:
- NArray, restituisce un array contenente i record dei risultati. Se la richiesta è UPDATE o INSERT, il risultato restituito includerà anche l'elemento interessato e l'insertId. mssql non supporta l'insertId.
createTable
Crea tabella dati
1SQLite.createTable(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
dropTable
Elimina tabella dati
1SQLite.dropTable(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
createIndex
Crea l'indice della tabella dati
1SQLite.createIndex(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
dropIndex
Elimina l'indice della tabella dati
1SQLite.dropIndex(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
insert
Inserisci nuovo record
1Number SQLite.insert(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
Risultati restituiti:
- Number, restituisce l'id contenente l'inserimento, oppure 0 se il motore non lo supporta.
find
Interrogare i dati in base a condizioni specificate
1NArray SQLite.find(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
Risultati restituiti:
- NArray, restituisce i record contenenti i risultati
count
Contare il numero di record di dati in base alle condizioni specificate
1Integer SQLite.count(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
Risultati restituiti:
- Integer, restituisce il numero di record contenenti il risultato
update
Aggiorna i dati in base alle condizioni specificate
1Integer SQLite.update(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri
Risultati restituiti:
- Integer, restituisce il numero di record contenenti aggiornamenti
remove
Elimina i dati in base alle condizioni specificate
1Integer SQLite.remove(Object opts) async;
Parametri di chiamata:
- opts: Oggetto, elenco parametri facoltativi
Risultati restituiti:
- Integer, restituisce il numero di record contenenti aggiornamenti
format
Formatta un comando SQL e restituisce il risultato formattato
1
2String SQLite.format(String method,
Object opts);
Parametri di chiamata:
- method: String, specifica il metodo richiesto
- opts: Oggetto, elenco parametri facoltativi
Risultati restituiti:
- String, restituisce il comando sql formattato
Formatta un comando SQL e restituisce il risultato formattato
1
2String SQLite.format(String sql,
...args);
Parametri di chiamata:
- sql: Stringa, stringa di formato, parametri opzionali vengono specificati con ?. Ad esempio: "SELECT FROM TEST WHERE [id]=?"
- args: ..., elenco parametri opzionale
Risultati restituiti:
- String, restituisce il comando sql formattato
toString
Restituisce la rappresentazione in formato stringa dell'oggetto. Generalmente viene restituito "[Oggetto nativo]". L'oggetto può essere reimplementato in base alle proprie caratteristiche.
1String SQLite.toString();
Risultati restituiti:
- String, restituisce la rappresentazione di stringa dell'oggetto
toJSON
Restituisce una rappresentazione in formato JSON dell'oggetto, generalmente restituendo una raccolta di proprietà leggibili definite dall'oggetto.
1Value SQLite.toJSON(String key = "");
Parametri di chiamata:
- key: Stringa, non utilizzata
Risultati restituiti:
- Value, restituisce un valore contenente JSON serializzabile