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

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

Features

TODO: 列出您的插件可以做什么。也许可以包含图片、GIF或视频。

Getting Started

TODO: 列出先决条件并提供或指向如何开始使用该插件的信息。

Usage

TODO: 为用户提供简短且有用的示例。将更长的示例添加到/example文件夹。

以下是一个简单的示例代码,展示如何使用atmos_database插件来管理数据库。

// 导入必要的库
import 'package:flutter/material.dart';
import 'package:atmos_database/atmos_database.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DatabaseExample(),
    );
  }
}

class DatabaseExample extends StatefulWidget {
  [@override](/user/override)
  _DatabaseExampleState createState() => _DatabaseExampleState();
}

class _DatabaseExampleState extends State<DatabaseExample> {
  // 初始化数据库实例
  final DatabaseManager db = DatabaseManager();

  [@override](/user/override)
  void initState() {
    super.initState();
    // 打开数据库
    db.openDatabase().then((value) {
      print('数据库已打开');
    }).catchError((error) {
      print('打开数据库失败: $error');
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('atmos_database 示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                // 插入数据
                db.insertData('users', {'name': 'John Doe', 'age': 30}).then((id) {
                  print('插入成功,ID: $id');
                }).catchError((error) {
                  print('插入失败: $error');
                });
              },
              child: Text('插入数据'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 查询数据
                db.queryData('users').then((data) {
                  print('查询结果: $data');
                }).catchError((error) {
                  print('查询失败: $error');
                });
              },
              child: Text('查询数据'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 更新数据
                db.updateData('users', {'name': 'Jane Doe'}, {'id': 1}).then((rowsAffected) {
                  print('更新成功,受影响行数: $rowsAffected');
                }).catchError((error) {
                  print('更新失败: $error');
                });
              },
              child: Text('更新数据'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 删除数据
                db.deleteData('users', {'id': 1}).then((rowsDeleted) {
                  print('删除成功,删除行数: $rowsDeleted');
                }).catchError((error) {
                  print('删除失败: $error');
                });
              },
              child: Text('删除数据'),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


atmos_database 是一个用于 Flutter 的数据库管理插件,它简化了与本地数据库的交互。虽然 atmos_database 并不是 Flutter 生态中最流行的数据库插件(如 sqflitehive),但它提供了一些便捷的功能来管理本地数据。

以下是使用 atmos_database 的基本步骤和示例代码:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  atmos_database: ^1.0.0  # 请使用最新版本

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

2. 初始化数据库

在使用 atmos_database 之前,你需要初始化数据库。通常,你可以在应用的 main.dart 文件中进行初始化。

import 'package:flutter/material.dart';
import 'package:atmos_database/atmos_database.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await AtmosDatabase.initialize();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 创建数据模型

atmos_database 使用 AtmosModel 来定义数据模型。你需要创建一个继承自 AtmosModel 的类。

import 'package:atmos_database/atmos_database.dart';

class User extends AtmosModel {
  String name;
  int age;

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

  [@override](/user/override)
  Map<String, dynamic> toMap() {
    return {
      'id': id,
      'name': name,
      'age': age,
    };
  }

  factory User.fromMap(Map<String, dynamic> map) {
    return User(
      id: map['id'],
      name: map['name'],
      age: map['age'],
    );
  }
}

4. 使用数据库

你可以使用 AtmosDatabase 来执行 CRUD 操作。

import 'package:flutter/material.dart';
import 'package:atmos_database/atmos_database.dart';

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _database = AtmosDatabase.instance;

  Future<void> _addUser() async {
    final user = User(name: 'John Doe', age: 30);
    await _database.insert(user);
  }

  Future<void> _getUsers() async {
    final users = await _database.getAll<User>();
    for (var user in users) {
      print('User: ${user.name}, Age: ${user.age}');
    }
  }

  Future<void> _updateUser() async {
    final user = await _database.get<User>(1);
    if (user != null) {
      user.name = 'Jane Doe';
      await _database.update(user);
    }
  }

  Future<void> _deleteUser() async {
    await _database.delete<User>(1);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Atmos Database Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: _addUser,
              child: Text('Add User'),
            ),
            ElevatedButton(
              onPressed: _getUsers,
              child: Text('Get Users'),
            ),
            ElevatedButton(
              onPressed: _updateUser,
              child: Text('Update User'),
            ),
            ElevatedButton(
              onPressed: _deleteUser,
              child: Text('Delete User'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部