变量和sql
String dbName = 'user.db';
String dbPath;
String sql_createTable =
'CREATE TABLE user_table (id INTEGER PRIMARY KEY, username TEXT,pwd Text)';
String sql_query_count = 'SELECT COUNT(*) FROM user_table';
String sql_query = 'SELECT * FROM user_table';
var _result;
/创建数据库/
Future<String> _createNewDb(String dbName) async {
Directory documentsDirectory = await getApplicationDocumentsDirectory();
print(documentsDirectory);
String path = join(documentsDirectory.path, dbName);
if (await new Directory(dirname(path)).exists()) {
await deleteDatabase(path);
} else {
try {
await new Directory(dirname(path)).create(recursive: true);
} catch (e) {
print(e);
}
}
return path;
}
_create() async {
dbPath = await _createNewDb(dbName);
Database db = await openDatabase(dbPath);
/*执行sql 创建表*/
await db.execute(sql_createTable);
await db.close();
setState(() {
_result = '创建user.db成功,创建user_table成功';
});
}
添加数据
_add() async {
Database db = await openDatabase(dbPath);
String sql =
"INSERT INTO user_table(username,pwd) VALUES('$username','$pwd')";
await db.transaction((txn) async {
int id = await txn.rawInsert(sql);
});
await db.close();
setState(() {
_result = "插入username=$username,pwd=$pwd数据成功";
});
}
删除数据
_delete() async {
Database db = await openDatabase(dbPath);
String sql = "DELETE FROM user_table WHERE id = ?";
int count = await db.rawDelete(sql, ['1']);
await db.close();
setState(() {
if (count == 1) {
_result = "删除成功,请查看";
} else {
_result = "删除失败,请看log";
}
});
}
更新数据
_update() async {
Database db = await openDatabase(dbPath);
String sql = "UPDATE user_table SET pwd = ? WHERE id = ?";
int count = await db.rawUpdate(sql, ["654321", '1']);
print(count);
await db.close();
setState(() {
_result = "更新数据成功,请查看";
});
}
查询数量
_queryNum() async {
Database db = await openDatabase(dbPath);
int count = Sqflite.firstIntValue(await db.rawQuery(sql_query_count));
await db.close();
setState(() {
_result = "数据条数:$count";
});
}
查询内容
_query() async {
Database db = await openDatabase(dbPath);
/*查询结果为 Map 集合*/
List<Map> list = await db.rawQuery(sql_query);
await db.close();
setState(() {
_result = "数据详情:$list";
});
}