ObjetSQLite
Les objets SQLite sont des modules intégrésdbMembre de la base de données SQLite, principalement responsable de la connexion et du fonctionnement de la base de données SQLite, et peut être utilisé pour la création, l'interrogation, l'insertion, la mise à jour et d'autres opérations de la base de données SQLite. Dans le même temps, l'objet SQLite fournit également certaines opérations avancées telles que la sauvegarde et le formatage SQL. Les objets de connexion SQLite prennent également en charge les opérations de transaction
Dans les applications pratiques, nous créons généralement des tables de données de type SQLite en fonction des besoins de l'entreprise, puis effectuons des opérations telles que l'ajout, la suppression, la modification et l'interrogation de données, par exemple :
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 dispose également d'un module vec_index intégré.Nous pouvons créer un index sur le champ vectoriel sur la base de données SQLite, effectuer une recherche basée sur le champ vectoriel et obtenir l'ensemble de vecteurs le plus similaire au vecteur cible. Prend en charge l'utilisation de tableaux de types numériques pour représenter des vecteurs, tels que [1, 2, 3], et prend en charge les dimensions vectorielles. De plus, vec_index prend en charge les opérations par lots au sein d'une transaction.
Voici un exemple simple :
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 récupération de vecteurs peut être effectuée à l'aide de la fonction vec_search, par exemple :
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 renvoie une collection de vecteurs les plus proches et un tableau de distances, où les distances sont classées de petite à grande. Si vous devez renvoyer plusieurs ensembles de vecteurs les plus proches, vous pouvez utiliser le paramètre :limit, par exemple :
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")`);
relation d'héritage
propriétés des membres
fileName
Chaîne, nom du fichier de base de données actuel
1readonly String SQLite.fileName;
timeout
Nombre entier, interroger et définir le délai d'expiration de la base de données, en millisecondes
1Integer SQLite.timeout;
type
Chaîne, interroge le type de base de données de connexion actuel
1readonly String SQLite.type;
fonction membre
backup
Sauvegarder la base de données actuelle dans un nouveau fichier
1SQLite.backup(String fileName) async;
Paramètres d'appel :
- fileName: Chaîne, spécifiez le nom du fichier de base de données de sauvegarde
close
Fermer la connexion actuelle à la base de données
1SQLite.close() async;
use
Sélectionnez la base de données par défaut pour la connexion à la base de données actuelle
1SQLite.use(String dbName) async;
Paramètres d'appel :
- dbName : String, spécifiez le nom de la base de données
begin
Démarrer une transaction sur la connexion actuelle à la base de données
1SQLite.begin(String point = "") async;
Paramètres d'appel :
- point: String, précise le nom de la transaction, non spécifié par défaut
commit
Valider la transaction sur la connexion actuelle à la base de données
1SQLite.commit(String point = "") async;
Paramètres d'appel :
- point: String, précise le nom de la transaction, non spécifié par défaut
rollback
Annuler une transaction sur la connexion actuelle à la base de données
1SQLite.rollback(String point = "") async;
Paramètres d'appel :
- point: String, précise le nom de la transaction, non spécifié par défaut
trans
Entrez une transaction pour exécuter une fonction et validez ou annulez en fonction de l'exécution de la fonction.
1Boolean SQLite.trans(Function func);
Paramètres d'appel :
- func: Fonction, une fonction exécutée de manière transactionnelle
Résultats de retour :
- Boolean, renvoie si la transaction est validée, renvoie true pour une validation normale, renvoie false pour une restauration et renvoie une erreur si la transaction tourne mal.
Il y a trois résultats de l’exécution de func :
- La fonction revient normalement, y compris la fin de l'opération et le retour actif, moment auquel la transaction sera automatiquement validée.
- La fonction renvoie false et la transaction sera annulée
- Erreur de fonctionnement de la fonction, transaction automatiquement annulée
Entrez une transaction pour exécuter une fonction et validez ou annulez en fonction de l'exécution de la fonction.
1
2Boolean SQLite.trans(String point,
Function func);
Paramètres d'appel :
- point: String, précise le nom de la transaction
- func: Fonction, une fonction exécutée de manière transactionnelle
Résultats de retour :
- Boolean, renvoie si la transaction est validée, renvoie true pour une validation normale, renvoie false pour une restauration et renvoie une erreur si la transaction tourne mal.
Il y a trois résultats de l’exécution de func :
- La fonction revient normalement, y compris la fin de l'opération et le retour actif, moment auquel la transaction sera automatiquement validée.
- La fonction renvoie false et la transaction sera annulée
- Erreur de fonctionnement de la fonction, transaction automatiquement annulée
execute
Exécuter une commande SQL et renvoyer le résultat de l'exécution
1NArray SQLite.execute(String sql) async;
Paramètres d'appel :
- sql: Chaîne, chaîne
Résultats de retour :
- NArray, renvoie un tableau contenant les enregistrements de résultats. Si la requête est UPDATE ou INSERT, le résultat renvoyé inclura également affecté et insertId. mssql ne prend pas en charge insertId.
Exécutez une commande sql et renvoyez le résultat de l'exécution. La chaîne peut être formatée en fonction des paramètres.
1
2NArray SQLite.execute(String sql,
...args) async;
Paramètres d'appel :
- sql: La chaîne, la chaîne de format et les paramètres facultatifs sont spécifiés avec ?. Par exemple : « SELECT FROM TEST WHERE [id]=? »
- args: ..., liste de paramètres optionnels
Résultats de retour :
- NArray, renvoie un tableau contenant les enregistrements de résultats. Si la requête est UPDATE ou INSERT, le résultat renvoyé inclura également affecté et insertId. mssql ne prend pas en charge insertId.
createTable
Créer un tableau de données
1SQLite.createTable(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
dropTable
Supprimer le tableau de données
1SQLite.dropTable(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
createIndex
Créer un index de table de données
1SQLite.createIndex(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
dropIndex
Supprimer l'index de la table de données
1SQLite.dropIndex(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
insert
Insérer un nouvel enregistrement
1Number SQLite.insert(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
Résultats de retour :
- Number, renvoie l'identifiant contenant l'insertion, ou 0 si le moteur ne le prend pas en charge.
find
Interroger des données en fonction de conditions spécifiées
1NArray SQLite.find(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
Résultats de retour :
- NArray, renvoie les enregistrements contenant les résultats
count
Compter le nombre d'enregistrements de données en fonction de conditions spécifiées
1Integer SQLite.count(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
Résultats de retour :
- Integer, renvoie le nombre d'enregistrements contenant le résultat
update
Mettre à jour les données en fonction de conditions spécifiées
1Integer SQLite.update(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres
Résultats de retour :
- Integer, renvoie le nombre d'enregistrements contenant des mises à jour
remove
Supprimer les données en fonction de conditions spécifiées
1Integer SQLite.remove(Object opts) async;
Paramètres d'appel :
- opts: Objet, liste de paramètres facultatifs
Résultats de retour :
- Integer, renvoie le nombre d'enregistrements contenant des mises à jour
format
Formatez une commande SQL et renvoyez le résultat formaté
1
2String SQLite.format(String method,
Object opts);
Paramètres d'appel :
- method: String, spécifie la méthode demandée
- opts: Objet, liste de paramètres facultatifs
Résultats de retour :
- String, renvoie la commande SQL formatée
Formatez une commande SQL et renvoyez le résultat formaté
1
2String SQLite.format(String sql,
...args);
Paramètres d'appel :
- sql: La chaîne, la chaîne de format et les paramètres facultatifs sont spécifiés avec ?. Par exemple : « SELECT FROM TEST WHERE [id]=? »
- args: ..., liste de paramètres optionnels
Résultats de retour :
- String, renvoie la commande SQL formatée
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String SQLite.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value SQLite.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable