Flutter floor 数据库 DAO 文件中的未来 bool 操作?
Flutter floor database Future bool action in DAO file?
在使用 floor 数据库时,我们可以设置一个像下面的例子一样变成布尔值的动作吗?
Future<bool> isItAdded(in user_id) async{
var = dbClient = await db;
List<Map> list = await dbClient.rawQuery{SELECT * FROM Users WHERE user_id}, [user_id]}
return list.lenght > 0 ? true : false
}
你可以写DAO对象:
@dao
abstract class UsersDao {
@Query('SELECT * FROM users WHERE user_id = :userId')
Future<List<User>> findUsers(Int userId);
}
在此之前您需要创建实体:
@Entity(tableName: 'users')
class User{
@PrimaryKey(autoGenerate: true)
final int id;
@ColumnInfo(name: 'user_id')
final int userId;
}
您还需要创建数据库访问对象:
part 'database.g.dart'; // the generated code will be there
@Database(version: 1, entities: [User])
abstract class AppDatabase extends FloorDatabase {
UsersDao get usersDao;
}
然后通过命令生成附加代码:
flutter packages pub run build_runner build
然后在数据库访问对象中编写检查函数:
Future<bool> isItAdded(in user_id) async {
List<User> list = await usersDao.findUsers(user_id);
return list.lenght > 0;
}
最好的解决方案是不添加 user_id 列,只使用唯一的 id 列。
在使用 floor 数据库时,我们可以设置一个像下面的例子一样变成布尔值的动作吗?
Future<bool> isItAdded(in user_id) async{
var = dbClient = await db;
List<Map> list = await dbClient.rawQuery{SELECT * FROM Users WHERE user_id}, [user_id]}
return list.lenght > 0 ? true : false
}
你可以写DAO对象:
@dao
abstract class UsersDao {
@Query('SELECT * FROM users WHERE user_id = :userId')
Future<List<User>> findUsers(Int userId);
}
在此之前您需要创建实体:
@Entity(tableName: 'users')
class User{
@PrimaryKey(autoGenerate: true)
final int id;
@ColumnInfo(name: 'user_id')
final int userId;
}
您还需要创建数据库访问对象:
part 'database.g.dart'; // the generated code will be there
@Database(version: 1, entities: [User])
abstract class AppDatabase extends FloorDatabase {
UsersDao get usersDao;
}
然后通过命令生成附加代码:
flutter packages pub run build_runner build
然后在数据库访问对象中编写检查函数:
Future<bool> isItAdded(in user_id) async {
List<User> list = await usersDao.findUsers(user_id);
return list.lenght > 0;
}
最好的解决方案是不添加 user_id 列,只使用唯一的 id 列。