温馨提示×

centos下flutter如何数据库操作

小樊
44
2025-07-04 17:14:27
栏目: 智能运维

在CentOS系统下使用Flutter进行数据库操作,通常会选择SQLite作为本地数据库。以下是在Flutter中使用SQLite进行数据库操作的基本步骤:

1. 添加依赖

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

dependencies: flutter: sdk: flutter sqflite: ^2.0.0+4 path_provider: ^2.0.2 

然后运行flutter pub get命令来安装这些依赖。

2. 初始化数据库

创建一个数据库帮助类,用于初始化数据库和创建表:

import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package:sqflite/sqflite.dart'; class DatabaseHelper { static final _databaseName = "my_database.db"; static final _databaseVersion = 1; static final table = 'my_table'; static final columnId = 'id'; static final columnTitle = 'title'; // Make this a singleton class. DatabaseHelper._privateConstructor(); static final DatabaseHelper instance = DatabaseHelper._privateConstructor(); // Only have a single app-wide reference to the database. static Database? _database; Future<Database> get database async => _database ??= await _initDatabase(); // Open the database and create the table if it doesn't exist. _initDatabase() async { Directory documentsDirectory = await getApplicationDocumentsDirectory(); String path = join(documentsDirectory.path, _databaseName); return await openDatabase(path, version: _databaseVersion, onCreate: _onCreate); } // SQL code to create the database table. Future _onCreate(Database db, int version) async { await db.execute(''' CREATE TABLE $table ( $columnId INTEGER PRIMARY KEY, $columnTitle TEXT NOT NULL ) '''); } // Helper methods to insert, update, delete and query the database. // ... } 

3. 插入数据

Future<int> insert(Map<String, dynamic> row) async { Database db = await instance.database; return await db.insert(table, row); } 

4. 查询数据

Future<List<Map<String, dynamic>>> query(Map<String, dynamic> query) async { Database db = await instance.database; return await db.query(table, where: query); } 

5. 更新数据

Future<int> update(Map<String, dynamic> row, String whereClause, List<String> whereArgs) async { Database db = await instance.database; return await db.update(table, row, where: whereClause, whereArgs: whereArgs); } 

6. 删除数据

Future<int> delete(String whereClause, List<String> whereArgs) async { Database db = await instance.database; return await db.delete(table, where: whereClause, whereArgs: whereArgs); } 

7. 使用数据库帮助类

在你的Flutter应用中,你可以这样使用DatabaseHelper类:

void main() async { WidgetsFlutterBinding.ensureInitialized(); DatabaseHelper dbHelper = DatabaseHelper.instance; // Insert data await dbHelper.insert({'title': 'Hello, World!'}); // Query data List<Map<String, dynamic>> results = await dbHelper.query({'title': 'Hello, World!'}); print(results); // Update data await dbHelper.update({'title': 'Hello, Flutter!'}, 'title = ?', ['Hello, World!']); // Delete data await dbHelper.delete('title = ?', ['Hello, Flutter!']); } 

以上步骤展示了如何在CentOS系统下使用Flutter进行SQLite数据库的基本操作。根据你的需求,你可以扩展DatabaseHelper类,添加更多的查询方法和功能。

0