Flutter本地数据库管理插件app_sembast的使用
Flutter本地数据库管理插件app_sembast的使用
app_sembast
是一个用于简化 Flutter 应用开发的本地数据库管理插件。它基于 sembast
数据库,为开发者提供了方便的方法来操作数据库。
支持
如果您喜欢我的工作并希望支持我,买杯咖啡会很棒!感谢您的支持!
Mark Ivan Basto • GitHub @MarkIvanDev
使用示例
以下是一个简单的示例,展示了如何使用 app_sembast
插件进行基本的数据库操作。
import 'package:app_sembast/app_sembast.dart';
void main() async {
// 打开数据库文件
final db = await getDatabaseFactory().openDatabase('test.db');
// 关闭数据库文件
await db.close();
}
完整示例代码
以下是一个完整的示例,演示了如何使用 app_sembast
插件进行增删改查操作。
import 'package:app_sembast/app_sembast.dart';
import 'dart:async';
void main() async {
// 打开数据库文件
final db = await getDatabaseFactory().openDatabase('test.db');
// 插入数据
await db.transaction((txn) async {
await txn.put('my_store', {'name': 'John Doe', 'age': 30});
await txn.put('my_store', {'name': 'Jane Doe', 'age': 28});
});
// 查询数据
var result = await db.get('my_store', key: 'John Doe');
print(result); // 输出: {name: John Doe, age: 30}
// 更新数据
await db.put('my_store', {'name': 'John Doe', 'age': 31}, key: 'John Doe');
// 删除数据
await db.delete('my_store', whereKey: 'Jane Doe');
// 关闭数据库文件
await db.close();
}
详细步骤说明
-
导入必要的库
import 'package:app_sembast/app_sembast.dart';
-
打开数据库
final db = await getDatabaseFactory().openDatabase('test.db');
-
插入数据
await db.transaction((txn) async { await txn.put('my_store', {'name': 'John Doe', 'age': 30}); await txn.put('my_store', {'name': 'Jane Doe', 'age': 28}); });
-
查询数据
var result = await db.get('my_store', key: 'John Doe'); print(result); // 输出: {name: John Doe, age: 30}
-
更新数据
await db.put('my_store', {'name': 'John Doe', 'age': 31}, key: 'John Doe');
-
删除数据
await db.delete('my_store', whereKey: 'Jane Doe');
-
关闭数据库
await db.close();
更多关于Flutter本地数据库管理插件app_sembast的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter本地数据库管理插件app_sembast的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
app_sembast
是一个用于 Flutter 的本地数据库管理插件,它基于 sembast
库,提供了一个简单且高效的 NoSQL 数据库解决方案。sembast
是一个基于文件的 NoSQL 数据库,适用于 Flutter 和 Dart 应用程序,允许你以键值对的形式存储数据。
安装 app_sembast
首先,你需要在 pubspec.yaml
文件中添加 app_sembast
依赖:
dependencies:
flutter:
sdk: flutter
app_sembast: ^1.0.0
然后运行 flutter pub get
来安装依赖。
使用 app_sembast
1. 初始化数据库
在使用 app_sembast
之前,你需要初始化数据库。通常,你可以在 main.dart
中进行初始化:
import 'package:app_sembast/app_sembast.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化数据库
await AppSembast.init();
runApp(MyApp());
}
2. 打开数据库
你可以使用 AppSembast.instance
来获取数据库实例,并打开数据库:
final database = await AppSembast.instance.database;
3. 存储数据
你可以使用 put
方法来存储数据:
import 'package:sembast/sembast.dart';
final store = intMapStoreFactory.store('my_store');
await store.record(1).put(database, {'name': 'John', 'age': 30});
await store.record(2).put(database, {'name': 'Jane', 'age': 25});
4. 获取数据
你可以使用 get
方法来获取数据:
final record = await store.record(1).get(database);
print(record); // {'name': 'John', 'age': 30}
5. 查询数据
你可以使用 find
方法来查询数据:
final finder = Finder(filter: Filter.greaterThan('age', 28));
final records = await store.find(database, finder: finder);
records.forEach((record) {
print(record.value); // {'name': 'John', 'age': 30}
});
6. 更新数据
你可以使用 update
方法来更新数据:
await store.record(1).update(database, {'age': 31});
7. 删除数据
你可以使用 delete
方法来删除数据:
await store.record(1).delete(database);
8. 关闭数据库
在应用程序退出时,你可以关闭数据库:
await database.close();
完整示例
以下是一个完整的示例,展示了如何使用 app_sembast
进行基本的 CRUD 操作:
import 'package:app_sembast/app_sembast.dart';
import 'package:flutter/material.dart';
import 'package:sembast/sembast.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化数据库
await AppSembast.init();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('App Sembast Example')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
final database = await AppSembast.instance.database;
final store = intMapStoreFactory.store('my_store');
// 存储数据
await store.record(1).put(database, {'name': 'John', 'age': 30});
await store.record(2).put(database, {'name': 'Jane', 'age': 25});
// 获取数据
final record = await store.record(1).get(database);
print(record); // {'name': 'John', 'age': 30}
// 查询数据
final finder = Finder(filter: Filter.greaterThan('age', 28));
final records = await store.find(database, finder: finder);
records.forEach((record) {
print(record.value); // {'name': 'John', 'age': 30}
});
// 更新数据
await store.record(1).update(database, {'age': 31});
// 删除数据
await store.record(1).delete(database);
},
child: Text('Run Example'),
),
],
),
),
),
);
}
}