import '../../utils/db_manager.dart'; import 'package:sqflite/sqflite.dart'; import 'package:path_provider/path_provider.dart'; import 'dart:io'; class SQLiteUtil { static const String DB_NAME = "makemoney.db"; static Future _getDB() async { var path = await getDatabasesPath() + "/$DB_NAME"; print("databasepath:$path"); Database database = await openDatabase(path, version: 1, onCreate: (Database db, int version) async { // When creating the db, create the table List tables = DBManager.getTables(); for (var i = 0; i < tables.length; i++) { await db.execute(tables[i]); } }); return database; } static Future executeSQL(String sql) async { var db = await openDatabase(""); await db.execute(sql); await db.close(); } static Future executeSQLWithParams(String sql, List params) async { var db = await _getDB(); await db.execute(sql, params); await db.close(); } static Future executeSQLs(List sqls) async { var db = await _getDB(); for (var i = 0; i < sqls.length; i++) { await db.execute(sqls[i]); } await db.close(); } ///批量插入 ///sql示例:INSERT INTO artists (name) VALUES (?) static Future insert(String sql, List list) async { var db = await _getDB(); await db.transaction((txn) async { for (var i = 0; i < list.length; i++) { await txn.rawInsert(sql, list[i]); } }); await db.close(); } ///查询 static Future> select(String sql, List params) async { var db = await _getDB(); List list = await db.rawQuery(sql, params); await db.close(); return list; } static Future count(String sql, List params) async { var db = await _getDB(); int? count = Sqflite.firstIntValue(await db.rawQuery(sql, params)); await db.close(); return count!; } }