Flutter数据库管理插件octobase_flutter的使用
Flutter数据库管理插件octobase_flutter的使用
功能
- 注册
- 登录
- 查看用户信息
- 检查令牌
- 使用Firebase注册
- 选择、添加、更新、删除操作
开始使用
- 首先注册你的Octobase服务器。
Octobase octobase =
OctobaseServer.init('http://serverurl.com', 'api/school/v1');
请注意,你的API路径必须以octobase
开头,例如:octobase/api/school/v1
使用示例
注册用户
octobase
.register('Hello', 'Dilan', 'hello@gmail.com', 'hello', 'hello12345',
'hello12345')
.then((value) {
debugPrint(value.email);
}).catchError((error, stackTrace) {
debugPrint(error);
});
登录用户
octobase.login('hello@gmail.com', 'hello12345').then((value) {
debugPrint(value.token);
}).catchError((error, stackTrace) {
debugPrint(error);
});
刷新令牌
octobase.refresh().then((userInfo) {
debugPrint(userInfo.token);
}).catchError((error, stackTrace) {
debugPrint(error);
});
获取用户信息
octobase.user().then((userInfo) {
debugPrint(userInfo.token);
}).catchError((error, stackTrace) {
debugPrint(error);
});
从模型中选择数据
你需要使用JSON Serializable生成模型。
学生模型
import 'package:json_annotation/json_annotation.dart';
part 'student.g.dart';
@JsonSerializable()
class Student {
int? id;
String? name;
String? address;
String? gender;
Student({this.id, this.name, this.address, this.gender});
factory Student.fromJson(Map<String, dynamic> json) {
return _$StudentFromJson(json);
}
Map<String, dynamic> toJson() => _$StudentToJson(this);
}
选择数据
octobase.selectAll<Student>(Student.fromJson).then((value) {
print(value.data?[0].gender);
}).onError((error, stackTrace) {
print(error);
});
添加数据
octobase.add<Student>(Student.fromJson, data: {
'name': 'Peter',
'address': "Flower Road",
"gender": "male"
}).then((response) {
print(response.name);
});
更新数据
octobase.update<Student>(Student.fromJson, 4, data: {'name': 'Dilan'}).then(
(response) {
print(response.name);
});
删除数据
octobase.delete<Student>(8).then((response) {});
更多关于Flutter数据库管理插件octobase_flutter的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter数据库管理插件octobase_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
octobase_flutter
是一个用于在 Flutter 应用中管理本地数据库的插件。它基于 SQLite,提供了简单易用的 API 来执行数据库操作。以下是如何使用 octobase_flutter
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 octobase_flutter
插件的依赖:
dependencies:
flutter:
sdk: flutter
octobase_flutter: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化数据库
在使用数据库之前,你需要初始化数据库。通常,你可以在应用的 main
函数中进行初始化。
import 'package:octobase_flutter/octobase_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化数据库
await OctobaseFlutter.initialize(
databaseName: 'my_database.db',
version: 1,
onCreate: (database, version) async {
// 创建表
await database.execute(
'CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)',
);
},
onUpgrade: (database, oldVersion, newVersion) async {
// 数据库升级逻辑
},
);
runApp(MyApp());
}
3. 执行数据库操作
初始化数据库后,你可以使用 OctobaseFlutter
提供的 API 来执行各种数据库操作。
插入数据
import 'package:octobase_flutter/octobase_flutter.dart';
Future<void> insertUser() async {
final database = await OctobaseFlutter.database;
await database.insert(
'users',
{'name': 'John Doe', 'age': 30},
);
}
查询数据
import 'package:octobase_flutter/octobase_flutter.dart';
Future<List<Map<String, dynamic>>> getUsers() async {
final database = await OctobaseFlutter.database;
return await database.query('users');
}
更新数据
import 'package:octobase_flutter/octobase_flutter.dart';
Future<void> updateUser(int id) async {
final database = await OctobaseFlutter.database;
await database.update(
'users',
{'name': 'Jane Doe', 'age': 25},
where: 'id = ?',
whereArgs: [id],
);
}
删除数据
import 'package:octobase_flutter/octobase_flutter.dart';
Future<void> deleteUser(int id) async {
final database = await OctobaseFlutter.database;
await database.delete(
'users',
where: 'id = ?',
whereArgs: [id],
);
}
4. 使用数据库操作
你可以在应用的任何地方调用这些数据库操作函数。例如,在 StatefulWidget
的 initState
或按钮点击事件中调用。
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Octobase Flutter Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
await insertUser();
print('User inserted');
},
child: Text('Insert User'),
),
ElevatedButton(
onPressed: () async {
final users = await getUsers();
print('Users: $users');
},
child: Text('Get Users'),
),
],
),
),
),
);
}
}
5. 关闭数据库
在应用关闭时,你可能需要关闭数据库连接。通常,你可以在 dispose
方法中执行此操作。
[@override](/user/override)
void dispose() async {
final database = await OctobaseFlutter.database;
await database.close();
super.dispose();
}