Я строю систему базы данных.
Данные из iOS и Android управляются отдельно во флаттере
Я хочу управлять ими в одном месте одновременно.
Итак, я обнаружил, что это были активы, и я решил позаботиться об этом там.
, но Данные обрабатывались нормально в существующей базе данных, но ничего не обрабатывалось в базе данных в «активах».
Сообщение об ошибке не появляется, и код работает нормально.
код базы данных:
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';
import 'package:socialapp/model/todo.dart';
import 'dart:async';
import 'dart:io' as io;
import 'package:path/path.dart';
import 'package:flutter/services.dart';
import 'dart:io';
final String tableName = 'person';
class DBHelper{
DBHelper._();
static final DBHelper _db = DBHelper._();
factory DBHelper() => _db;
//해당 변수에 데이터베이스 정보 저장
static Database _database;
Future<Database> get database async{
if(_database == null){
print('데이터베이스 없음 , 초기화 시작');
_database = await initDB();
return _database;}else {
print('이미 데이터베이스가 존재');
return _database;
}
}
initDB() async{
Directory dbDir = await getApplicationDocumentsDirectory();
String path = join(dbDir.path, "social.db");
print('초기화중');
print(path);
ByteData data = await rootBundle.load(join('assets', 'socialapp.db'));
List<int> bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
await File(path).writeAsBytes(bytes);
return await openDatabase(
path,
version: 1,
onOpen: (db) {},
onCreate: (Database db, int version) async{
await db.execute('''
CREATE TABLE $tableName(
id INTEGER PRIMARY KEY,
email TEXT,
password TEXT,
name TEXT,
intro TEXT,
age TEXT) ''');
},
);
}
createData(Todo todo)async{
print('데이터베이스 생성중..');
final db = await database;
print('데이터베이스 추가중 ...');
var res = await db.insert(tableName, todo.toJson());
print('데이터베이스 추가완료');
return res;
}
//read
getTodo(int id) async{
final db = await database;
var res = await db.query(tableName, where: 'id = ?', whereArgs: [id]);
return res.isNotEmpty ? Todo.fromJson(res.first) : Null;
}
getAllTodos() async{
final db = await database;
var res = await db.query(tableName);
return res;
}
updateTodo(Todo todo) async{
final db = await database;
var res = await db.update(tableName, todo.toJson(),
where: 'id =?' , whereArgs: [todo.id]);
return res;
}
//Delete
deleteTodo(int id) async{
final db = await database;
db.delete(tableName, where: 'id =?', whereArgs: [id]);
}
deleteAllTodos() async{
final db =await database;
db.rawDelete("Delete * from $tableName");
}
}
как исправить этот код?