在CentOS系统下使用Flutter连接数据库,通常会选择SQLite、MySQL、PostgreSQL等数据库。以下是使用SQLite数据库的一个基本步骤指南:
安装Flutter: 如果你还没有安装Flutter,请访问Flutter官网(https://flutter.dev/)下载并安装适用于Linux的Flutter SDK。
创建Flutter项目: 打开终端,运行以下命令来创建一个新的Flutter项目:
flutter create my_flutter_app 然后进入项目目录:
cd my_flutter_app 添加依赖: 在pubspec.yaml文件中添加SQLite的依赖:
dependencies: flutter: sdk: flutter sqflite: ^2.0.0+4 # 请检查最新版本 path_provider: ^2.0.1 # 用于获取数据库路径 然后运行flutter pub get来安装依赖。
使用SQLite: 在你的Flutter应用中,你可以使用sqflite包来操作SQLite数据库。以下是一个简单的例子,展示了如何打开一个数据库,创建一个表,插入数据,查询数据,以及关闭数据库。
import 'package:flutter/material.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; void main() { runApp(MyApp()); } 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(); } initDatabase() async { // 获取应用的文档目录 Directory documentsDirectory = await getApplicationDocumentsDirectory(); String path = join(documentsDirectory.path, 'my_database.db'); // 打开数据库 _database = await openDatabase(path, version: 1, onCreate: (Database db, int version) async { // 创建表 await db.execute(''' CREATE TABLE my_table( id INTEGER PRIMARY KEY, name TEXT NOT NULL ) '''); }); } // 插入数据 Future<void> insertData(String name) async { await _database!.insert('my_table', {'name': name}); } // 查询数据 Future<List<Map<String, dynamic>>> queryData() async { return await _database!.query('my_table'); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Flutter SQLite Example'), ), body: Center( child: FutureBuilder<List<Map<String, dynamic>>>( future: queryData(), builder: (BuildContext context, AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { if (snapshot.connectionState == ConnectionState.done && snapshot.hasData) { List<Map<String, dynamic>> rows = snapshot.data!; return ListView.builder( itemCount: rows.length, itemBuilder: (context, index) { return ListTile( title: Text(rows[index]['name']), ); }, ); } else { return CircularProgressIndicator(); } }, ), ), floatingActionButton: FloatingActionButton( onPressed: () { insertData('New Item'); }, tooltip: 'Add Item', child: Icon(Icons.add), ), ); } } 运行应用: 在终端中运行以下命令来启动你的Flutter应用:
flutter run 以上步骤展示了如何在CentOS系统下使用Flutter连接SQLite数据库。如果你想使用其他类型的数据库,如MySQL或PostgreSQL,你需要添加相应的依赖包,并根据数据库类型调整连接和操作数据库的代码。对于远程数据库,还需要处理网络连接和安全性问题。