Flutter开发之——数据库
在Flutter中,数据库操作通常通过sqflite
插件来实现,这是一个支持Android和iOS的数据库插件。以下是使用sqflite
创建和管理数据库的基本步骤:
- 添加
sqflite
依赖到你的pubspec.yaml
文件。 - 导入所需的库。
- 打开或创建数据库。
- 执行数据库操作,如查询、插入、更新、删除。
以下是一个简单的示例,展示了如何使用sqflite
在Flutter中创建和管理数据库:
import 'package:flutter/services.dart';
import 'package:sqflite/sqflite.dart';
// 数据库版本号
const int _databaseVersion = 1;
// 数据库名称
const String _databaseName = 'my_database.db';
// 表名
const String _tableName = 'my_table';
// 创建表的SQL语句
String createTableSql = '''
CREATE TABLE $_tableName (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
)
''';
// 初始化数据库
Future<Database> initDatabase() async {
// 获取数据库路径
String path = join(await getDatabasesPath(), _databaseName);
// 打开或创建数据库
return await openDatabase(path, version: _databaseVersion,
onCreate: (Database db, int version) async {
// 创建表
await db.execute(createTableSql);
});
}
// 插入数据
Future<int> insertData(String name, int age) async {
Database db = await initDatabase();
return await db.insert(_tableName, <String, dynamic>{
'name': name,
'age': age,
});
}
// 查询数据
Future<List<Map<String, dynamic>>> queryData() async {
Database db = await initDatabase();
return await db.query(_tableName);
}
// 更新数据
Future<int> updateData(int id, String name, int age) async {
Database db = await initDatabase();
return await db.update(_tableName, <String, dynamic>{
'name': name,
'age': age,
}, where: 'id = ?', whereArgs: [id]);
}
// 删除数据
Future<int> deleteData(int id) async {
Database db = await initDatabase();
return await db.delete(_tableName, where: 'id = ?', whereArgs: [id]);
}
// 使用示例
void main() async {
// 插入数据
await insertData('张三', 25);
// 查询数据
List<Map<String, dynamic>> result = await queryData();
print(result);
// 更新数据
await updateData(1, '李四', 30);
// 删除数据
await deleteData(1);
}
在这个示例中,我们首先定义了数据库版本号和数据库名称,以及创建表的SQL语句。然后,我们定义了initDatabase
函数来打开或创建数据库,并在创建时执行表的创建语句。之后,我们提供了插入、查询、更新和删除数据的函数,并在main
函数中提供了使用这些函数的示例。这个简单的例子展示了如何在Flutter中使用sqflite
进行数据库操作。
评论已关闭