面试题答案
一键面试- 引入依赖:
在
pubspec.yaml
文件中添加sqflite
依赖:
dependencies:
sqflite: ^2.2.0
然后运行flutter pub get
。
- 创建数据库和表:
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
Future<void> createDatabase() async {
final databasePath = await getDatabasesPath();
final path = join(databasePath, 'example.db');
final database = await openDatabase(
path,
version: 1,
onCreate: (db, version) async {
await db.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
''');
},
);
}
这段代码:
- 首先获取应用的数据库路径。
- 然后打开数据库,如果数据库不存在则创建,并定义了数据库版本为1。
- 在
onCreate
回调中,使用execute
方法执行SQL语句创建了一个名为users
的表,表中有id
(自增主键)、name
(文本类型且不能为空)和age
(整数类型)字段。
- 插入数据:
Future<void> insertData() async {
final databasePath = await getDatabasesPath();
final path = join(databasePath, 'example.db');
final database = await openDatabase(path);
await database.insert(
'users',
{
'name': 'John Doe',
'age': 30,
},
);
}
这段代码:
- 同样先获取数据库路径并打开数据库。
- 然后使用
insert
方法向users
表中插入一条数据,insert
方法第一个参数是表名,第二个参数是一个Map
,其中键是列名,值是要插入的数据。