Flutter数据库管理插件octobase_flutter的使用

Flutter数据库管理插件octobase_flutter的使用

功能

  • 注册
  • 登录
  • 查看用户信息
  • 检查令牌
  • 使用Firebase注册
  • 选择、添加、更新、删除操作

开始使用

  1. 首先注册你的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. 使用数据库操作

你可以在应用的任何地方调用这些数据库操作函数。例如,在 StatefulWidgetinitState 或按钮点击事件中调用。

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();
}
回到顶部