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

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

这个插件用于 SQLite 和 Hive 数据库的查看等相关功能。具体的使用方法可以在示例代码中查看。

示例代码

以下是一个完整的示例代码,展示了如何使用 ume_kit_database 插件来管理 SQLite 和 Hive 数据库。

import 'package:flutter/material.dart';
import 'package:ume_kit_database/database.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';

// 定义一个模型类
class Person {
  final String name;
  final int age;

  Person({required this.name, required this.age});

  [@override](/user/override)
  String toString() {
    return 'Person{name: $name, age: $age}';
  }
}

// 定义一个适配器类
class PersonAdapter extends TypeAdapter<Person> {
  [@override](/user/override)
  final int typeId = 0;

  [@override](/user/override)
  Person read(BinaryReader reader) {
    return Person(name: reader.readString(), age: reader.readInt());
  }

  [@override](/user/override)
  void write(BinaryWriter writer, Person obj) {
    writer.writeString(obj.name);
    writer.writeInt(obj.age);
  }
}

void main() async {
  // 初始化 SQLite 数据库
  var sqldb = SqliteDatabas(
    'test.db',
    path: null,
    isDeleteDB: true,
    onCreate: (db, index) {
      // 创建表
      db.execute(
        'CREATE TABLE test (table_name TEXT, table_size INTEGER, tid INTEGER, tid1 INTEGER, tid2 INTEGER)',
      );
      db.execute('CREATE TABLE people (name TEXT, age INTEGER)');
      // 插入数据
      db.insert(
        'people',
        {"name": "zhangzhangzhangzhangzhangzhangzhangzhangzhangzhangzhang", "age": 12},
      );
      db.insert(
        'people',
        {"name": "zhazhangzhangzhangzhangzhangzhangzhangzhangzhangzhangzhangzhangng", "age": 12},
      );
      db.insert(
        'people',
        {"name": "zhzhangzhangzhangzhangzhangzhangzhangzhangzhangzhangzhangang", "age": 12},
      );
      db.insert(
        'test',
        {"table_name": "zhang", "table_size": 12, "tid": 1, "tid1": 1, "tid2": 1},
      );
      db.insert(
        'test',
        {"table_name": "zhang", "table_size": 12, "tid": 2},
      );
    },
    updateMap: [
      {
        'test': SqliteUpdateConditions(
          updateNeedWhere: 'tid = ?',
          updateNeedcolumnKey: ['tid'],
        ),
      },
    ],
  );

  // 初始化 Hive 数据库
  await Hive.initFlutter();
  Hive.registerAdapter(PersonAdapter());
  var pBox = await Hive.openBox<Person>("people");
  pBox.put("p", Person(age: 12, name: 'xiaolaing'));
  pBox.put("p1", Person(age: 13, name: 'xiaolaing'));
  pBox.put("p1", Person(age: 13, name: 'xiaolaing'));
  pBox.put("p2", Person(age: 14, name: 'xiaolaing'));

  // 注册 Hive 数据库
  var hive = HiveDatabase([
    HiveBoxItem<Person>(name: 'people', box: pBox),
  ]);

  // 注册数据库面板
  PluginManager.instance.register(
    DatabasePanel(databases: [sqldb, hive]),
  );

  // 启动应用
  runApp(const UMEWidget(child: MyApp(), enable: true));
}

更多关于Flutter数据库管理插件ume_kit_database的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter数据库管理插件ume_kit_database的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ume_kit_database 是一个用于 Flutter 的数据库管理插件,它可以帮助开发者在开发过程中轻松地查看和管理应用的本地数据库。这个插件通常与 ume 调试工具一起使用,ume 是一个 Flutter 的调试工具集,提供了多种调试功能,包括日志查看、网络请求监控、数据库管理等。

安装

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

dependencies:
  flutter:
    sdk: flutter
  ume_kit_database: ^版本号

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

使用

  1. 初始化插件

    在你的应用中初始化 ume_kit_database 插件。通常你可以在 main.dart 文件中进行初始化:

    import 'package:flutter/material.dart';
    import 'package:ume_kit_database/ume_kit_database.dart';
    
    void main() {
      runApp(MyApp());
    
      // 初始化 UME 数据库管理插件
      UMEWidgetsFlutterBinding.ensureInitialized()
        ..attachDatabaseManager(DatabaseManager());
    }
    
  2. 配置数据库管理

    你需要将你的数据库实例传递给 DatabaseManager。假设你使用的是 sqflite 插件来管理 SQLite 数据库,你可以这样做:

    import 'package:sqflite/sqflite.dart';
    import 'package:ume_kit_database/ume_kit_database.dart';
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      Database? _database;
    
      @override
      void initState() {
        super.initState();
        _initDatabase();
      }
    
      Future<void> _initDatabase() async {
        final database = await openDatabase('my_database.db');
        setState(() {
          _database = database;
        });
    
        // 将数据库实例传递给 DatabaseManager
        DatabaseManager().setDatabase(_database);
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Flutter Demo Home Page'),
          ),
          body: Center(
            child: Text('Database is ready'),
          ),
        );
      }
    }
回到顶部