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

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

该包将使使用sqflite变得更加有趣和简单,而无需从零开始构建。

特性

它将帮助你通过调用创建数据库、更新、删除、插入和获取数据等方法来快速实现sqflite的基本功能。

开始使用

依赖项

pubspec.yaml文件中添加以下依赖:

dependencies:
  sqflite_helper_new: ^1.0.0

或者在终端中运行以下命令:

flutter pub add sqflite_helper_new

使用方法

首先创建一个变量:

final sqfliteHelper = SqflitehelperNew();

initialestate中添加创建数据库的方法:

创建数据库示例

sqfliteHelper.createDatabase(
  version: 1,
  databasefilename: 'todo.db',
  tablename: 'tasks',
  columns: [
    {
      'name': 'id',
      'type': 'INTEGER PRIMARY KEY AUTOINCREMENT',
    },
    {
      'name': 'title',
      'type': 'TEXT',
    },
    {
      'name': 'description',
      'type': 'TEXT',
    },
    {
      'name': 'status',
      'type': 'TEXT',
    },
  ],
);

插入数据示例

sqfliteHelper.insert(
  tablename: 'tasks',
  data: {
    'title': titlecontroller.text,
    'description': descriptioncontroller.text,
    'status': 'new',
  },
);

获取数据示例

  • 选择特定列

    sqfliteHelper.getdatafromdatabase(
      tablename: 'tasks',
      columnname: 'title',
    );
    
  • 不选择特定列

    sqfliteHelper.getdatafromdatabase(
      tablename: 'tasks',
    );
    

更新数据示例

sqfliteHelper.updateRecord(
  tablename: 'tasks',
  newData: {"title": "ert"},
  whereColumn: "title",
  oldValue: "xx",
);

删除数据示例

sqfliteHelper.deleteFromDatabase(
  tablename: 'tasks',
  whereColumn: 'title',
  value: 'ert',
);

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

1 回复

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


sqflite_helper_new 是一个基于 sqflite 的 Flutter 插件,它简化了数据库操作,提供了更高级的抽象和便利的 API。这个插件可以帮助你更轻松地管理 SQLite 数据库,执行 CRUD 操作,以及处理数据库迁移等任务。

以下是如何使用 sqflite_helper_new 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  sqflite_helper_new: ^1.0.0  # 检查最新版本

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

2. 初始化数据库

在使用数据库之前,你需要初始化它。通常,你会在应用的启动阶段进行初始化。

import 'package:sqflite_helper_new/sqflite_helper_new.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化数据库
  await DatabaseHelper.initialize(
    databaseName: 'my_database.db',
    version: 1,
    onCreate: (db, version) async {
      // 创建表格
      await db.execute('''
        CREATE TABLE User(
          id INTEGER PRIMARY KEY AUTOINCREMENT,
          name TEXT,
          age INTEGER
        )
      ''');
    },
    onUpgrade: (db, oldVersion, newVersion) async {
      // 处理数据库升级
    },
  );

  runApp(MyApp());
}

3. 执行 CRUD 操作

sqflite_helper_new 提供了简洁的 API 来执行插入、查询、更新和删除操作。

插入数据

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

查询数据

Future<List<Map<String, dynamic>>> getUsers() async {
  return await DatabaseHelper.query('User');
}

更新数据

Future<void> updateUser(int id) async {
  final updatedUser = {'name': 'Jane Doe', 'age': 25};
  await DatabaseHelper.update('User', updatedUser, where: 'id = ?', whereArgs: [id]);
}

删除数据

Future<void> deleteUser(int id) async {
  await DatabaseHelper.delete('User', where: 'id = ?', whereArgs: [id]);
}

4. 关闭数据库

当不再需要数据库时,记得关闭它。

Future<void> closeDatabase() async {
  await DatabaseHelper.close();
}

5. 处理数据库迁移

如果你的应用需要升级数据库结构,可以在 onUpgrade 回调中处理。

onUpgrade: (db, oldVersion, newVersion) async {
  if (oldVersion < 2) {
    await db.execute('ALTER TABLE User ADD COLUMN email TEXT');
  }
},

6. 使用事务

sqflite_helper_new 也支持事务操作。

Future<void> performTransaction() async {
  await DatabaseHelper.transaction((txn) async {
    await txn.insert('User', {'name': 'Alice', 'age': 28});
    await txn.update('User', {'age': 29}, where: 'name = ?', whereArgs: ['Alice']);
  });
}
回到顶部