sqlite3 0.1.1 sqlite3: ^0.1.1 copied to clipboard
Provides lightweight yet convenient bindings to SQLite by using dart:ffi
import 'dart:io';
import 'package:sqlite3/sqlite3.dart';
void main() {
print('Using sqlite3 ${sqlite3.version}');
// Create a new in-memory database.
final db = sqlite3.openInMemory();
// Create a table and insert some data
db.execute('''
CREATE TABLE artists (
id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL
);
''');
// Prepare a statement to run it multiple times:
final stmt = db.prepare('INSERT INTO artists (name) VALUES (?)');
stmt
..execute(['The Beatles'])
..execute(['Led Zeppelin'])
..execute(['The Who'])
..execute(['Nirvana']);
// Dispose a statement when you don't need it anymore to clean up resources.
stmt.dispose();
// You can run select statements with PreparedStatement.select, or directly
// on the database:
print(db.select('SELECT * FROM artists WHERE name LIKE ?', ['The %']));
// Register a custom function we can invoke from sql:
db.createFunction(
functionName: 'dart_version',
argumentCount: const AllowedArgumentCount(0),
function: (args) => Platform.version,
);
print(db.select('SELECT dart_version()'));
// Don't forget to dispose the database to avoid memory leaks
db.dispose();
}