Flutter对象关系映射注解插件simple_orm_annotation的使用

Flutter对象关系映射注解插件simple_orm_annotation的使用

在Flutter开发中,处理本地数据库时,通常需要将对象与数据库表进行映射。simple_orm_annotation 是一个用于简化对象关系映射(ORM)的插件,它通过注解的方式帮助开发者快速生成数据库模型类。

环境配置

首先,在 pubspec.yaml 文件中添加依赖:

dependencies:
  simple_orm_annotation: ^0.1.0

运行以下命令以获取依赖:

flutter pub get

使用步骤

1. 定义数据模型

使用 @Table@Column 注解来定义数据模型。

import 'package:simple_orm_annotation/simple_orm_annotation.dart';

// 定义注解处理器
part 'user.g.dart'; // 生成的文件名

@Table(tableName: 'users') // 表名
class User {
  @PrimaryKey(autoIncrement: true) // 主键,自动递增
  final int? id;

  @Column(name: 'username', isNullable: false) // 字段名,不可为空
  final String username;

  @Column(name: 'email', isUnique: true) // 唯一字段
  final String email;

  @Column(name: 'age', defaultValue: '18') // 默认值
  final int age;

  // 构造函数
  User({this.id, required this.username, required this.email, required this.age});
}

2. 生成代码

运行以下命令以生成代码:

flutter pub run build_runner build

这将在同一目录下生成 user.g.dart 文件。

3. 初始化数据库

使用 SimpleOrm 类来管理数据库。

import 'package:simple_orm/simple_orm.dart';
import 'user.dart';

void main() async {
  // 初始化数据库
  await SimpleOrm.initialize('my_database.db');

  // 创建表
  await SimpleOrm.createTable<User>();

  // 插入数据
  var user = User(
    username: 'JohnDoe',
    email: 'john@example.com',
    age: 25,
  );
  await SimpleOrm.insert(user);

  // 查询数据
  List<User> users = await SimpleOrm.query<User>();
  print(users);
}

4. 数据库操作

插入数据

await SimpleOrm.insert(user);

更新数据

user.age = 30;
await SimpleOrm.update(user);

删除数据

await SimpleOrm.delete(user);

查询数据

List<User> users = await SimpleOrm.query<User>();
print(users);

5. 高级查询

可以使用条件查询来筛选数据。

List<User> users = await SimpleOrm.query<User>(
  where: 'age > ? AND email LIKE ?', 
  whereArgs: [20, '%example.com']
);
print(users);

更多关于Flutter对象关系映射注解插件simple_orm_annotation的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter对象关系映射注解插件simple_orm_annotation的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


simple_orm_annotation 是一个用于 Flutter 的对象关系映射(ORM)注解插件,它可以帮助开发者通过注解的方式简化数据库操作。使用这个插件,你可以通过定义模型类并添加注解来自动生成数据库表和 CRUD 操作代码。

安装 simple_orm_annotation

首先,你需要在 pubspec.yaml 文件中添加 simple_orm_annotationbuild_runner 依赖:

dependencies:
  flutter:
    sdk: flutter
  simple_orm_annotation: ^1.0.0

dev_dependencies:
  build_runner: ^2.1.0
  simple_orm_generator: ^1.0.0

然后运行 flutter pub get 来安装依赖。

定义模型类

接下来,你可以定义一个模型类,并使用 simple_orm_annotation 提供的注解来标记字段。

import 'package:simple_orm_annotation/simple_orm_annotation.dart';

part 'user.g.dart'; // 自动生成的文件

@OrmEntity(tableName: 'users')
class User {
  @PrimaryKey(autoIncrement: true)
  int? id;

  @ColumnInfo(name: 'user_name')
  String name;

  @ColumnInfo(name: 'user_age')
  int age;

  User({this.id, required this.name, required this.age});
}

生成代码

在定义好模型类后,你需要使用 build_runner 来生成数据库操作代码。运行以下命令:

flutter pub run build_runner build

这将会生成一个 user.g.dart 文件,其中包含了与数据库交互的代码。

使用生成的代码

生成的代码中会包含一个 UserDao 类,你可以使用它来进行数据库操作。

import 'package:flutter/material.dart';
import 'package:simple_orm/simple_orm.dart';
import 'user.dart'; // 你的模型类

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化数据库
  await SimpleOrm.init('my_database.db');

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Simple ORM Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 插入数据
              var user = User(name: 'John Doe', age: 30);
              await UserDao.insert(user);

              // 查询数据
              var users = await UserDao.getAll();
              print(users);
            },
            child: Text('Insert and Query'),
          ),
        ),
      ),
    );
  }
}
回到顶部