Flutter ORM框架插件get_orm的使用
Flutter ORM框架插件get_orm的使用
在Flutter开发中,ORM(对象关系映射)框架可以帮助开发者更方便地操作数据库。get_orm
是一个基于 getx
的轻量级ORM框架,它支持多种数据库操作,并提供了简洁的API。
以下是一个完整的示例,展示如何使用 get_orm
插件进行数据库操作。
安装依赖
首先,在 pubspec.yaml
文件中添加 get_orm
依赖:
dependencies:
get_orm: ^版本号
然后运行 flutter pub get
来安装依赖。
初始化数据库
在使用 get_orm
之前,需要初始化数据库。这里我们以 SQLite 数据库为例:
import 'package:get/get.dart';
import 'package:get_orm/get_orm.dart';
class AppDatabase extends GetxService {
// 创建数据库实例
late final Database db;
[@override](/user/override)
Future<void> onReady() async {
super.onReady();
db = await openDatabase(
'app.db', // 数据库文件名
version: 1,
onCreate: (db, version) async {
// 创建表
await db.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
);
''');
},
);
}
}
使用 query builder 进行增删改查
1. 插入数据
void insertUser(String name, int age) async {
final db = Get.find<AppDatabase>().db;
await db.insert('users', {'name': name, 'age': age});
}
2. 查询数据
Future<List<Map<String, dynamic>>> getUsers() async {
final db = Get.find<AppDatabase>().db;
return await db.query('users');
}
3. 更新数据
void updateUser(int id, String name, int age) async {
final db = Get.find<AppDatabase>().db;
await db.update(
'users',
{'name': name, 'age': age},
where: 'id = ?',
whereArgs: [id],
);
}
4. 删除数据
void deleteUser(int id) async {
final db = Get.find<AppDatabase>().db;
await db.delete('users', where: 'id = ?', whereArgs: [id]);
}
完整示例代码
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_orm/get_orm.dart';
// 定义数据库服务
class AppDatabase extends GetxService {
late final Database db;
[@override](/user/override)
Future<void> onReady() async {
super.onReady();
db = await openDatabase(
'app.db',
version: 1,
onCreate: (db, version) async {
await db.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
);
''');
},
);
}
}
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return GetMaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('get_orm 示例')),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 初始化数据库
final database = Get.put(AppDatabase());
// 插入数据
await insertUser('张三', 25);
// 查询数据
final users = await getUsers();
print(users);
// 更新数据
await updateUser(1, '李四', 30);
// 删除数据
await deleteUser(1);
},
child: Text('测试 get_orm'),
),
),
),
);
}
}
更多关于Flutter ORM框架插件get_orm的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复