12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import 'package:path/path.dart';
- import 'package:sqflite/sqflite.dart' as Sqlite;
- import 'package:sqflite/sqflite.dart';
- import 'package:taskservice/Model/JXMemberModel.dart';
- import 'package:taskservice/Model/JXServiceModel.dart';
- class MyDataBase {
- static MyDataBase _instance;
- Database _database;
- String tableMembers = 'members';
- String tableServices = 'services';
- static Future<MyDataBase> get database async {
- if(_instance == null){
- _instance = MyDataBase();
- String path = join((await Sqlite.getDatabasesPath()), 'data.db');
- print('dbPath:${path}');
- await _instance.init();
- }
- return _instance;
- }
- Future init() async {
- _database = await Sqlite.openDatabase(join((await Sqlite.getDatabasesPath()), 'data.db'));
- List<Map<String, dynamic>> result = await _database.rawQuery("CREATE TABLE IF NOT EXISTS $tableMembers(id INTEGER PRIMARY KEY,"
- "name TEXT, tel TEXT, birth TEXT, prov TEXT, city TEXT, area TEXT, addr TEXT, remark TEXT, services TEXT,"
- "createtime DATETIME DEFAULT CURRENT_TIMESTAMP,"
- "updatetime DATETIME DEFAULT CURRENT_TIMESTAMP);"
- "CREATE TRIGGER [updatetime]"
- "AFTER UPDATE"
- "ON members"
- "FOR EACH ROW"
- "BEGIN"
- "UPDATE members SET updatetime = CURRENT_TIMESTAMP WHERE id = old.id;"
- "END;");
- List<Map<String, dynamic>> services = await _database.rawQuery("CREATE TABLE IF NOT EXISTS $tableServices(id INTEGER PRIMARY KEY, "
- "kind TEXT, cycle INTEGER, cycleUnit TEXT, remindDay INTEGER, remark TEXT, "
- "createtime DATETIME DEFAULT CURRENT_TIMESTAMP, "
- "updatetime DATETIME DEFAULT CURRENT_TIMESTAMP);"
- "CREATE TRIGGER [updatetime]"
- "AFTER UPDATE"
- "ON members"
- "FOR EACH ROW"
- "BEGIN"
- "UPDATE members SET updatetime = CURRENT_TIMESTAMP WHERE id = old.id;"
- "END;");
- }
- Future<List<JXMemberModel>> queryAllMembers() async {
- List<Map<String , dynamic>> data = await _database.query("$tableMembers");
- return data.map((e) => JXMemberModel()
- ..id = e['id']
- ..name = e['name']
- ..tel = e['tel'])
- .toList();
- }
- Future<void> saveMember(JXMemberModel jxMemberModel) async {
- await _database.insert(
- tableMembers,
- jxMemberModel.toMap(),
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- }
- /*服务*/
- Future<List <JXServiceModel>> queryAllServices() async {
- List<Map<String , dynamic>> data = await _database.query("$tableServices");
- return data.map((e) => JXServiceModel()
- ..id = e['id']
- ..kind = e['kind']
- ..cycle = e['cycle']
- ..cycleUnit = e['cycleUnit']
- ..remindDay = e['remindDay']
- ..remark = e['remark'])
- .toList();
- }
- /*添加新服务*/
- Future<JXServiceModel> saveService(JXServiceModel jxServiceModel) async {
- await _database.insert(
- tableServices,
- jxServiceModel.toMap(),
- conflictAlgorithm: ConflictAlgorithm.replace,
- );
- return null;
- }
- }
|