博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dbflow 批量 增删查改
阅读量:5172 次
发布时间:2019-06-13

本文共 1675 字,大约阅读时间需要 5 分钟。

@ModelContainer@Table(database = DemoDatabase.class)class Person extends BaseModel implements Serializable {    @PrimaryKey()    int uid;    @Column    int age;    @Column    String name;    ....    ....  }

下面例子主要用以上实体类。

1、可以通过增加外键来关联查询

// 比如增加infoId作为外键// 1 查询// 使用Table类进行字段查询List
persons = new Select().from(Person.class) .where(Person_Table.infoId.eq(infoId)) .queryList();// 2 删除// 可通过写Condition条件进行删除。SQLCondition condition = Condition.column(Person_Table.infoId.getNameAlias()).eq(infoId);Delete.table(Person.class).where(condition);

2、通过in进行操作。

List
uidList = new ArrayList<>();SQLCondition condition = Condition.column(Person_Table.uid.getNameAlias()).in(uidList);// 1 查询List
persons = new Select().from(Person.class) .where(condition) .queryList();// 2 删除Delete.table(Person.class, condition);

dbflow保存操作:

在github 的 issue上有一个bug,上面说,db.reset();后,保存会出现主键是唯一的异常。我更新了beta6后,发现不能使用一个批量保存list的方法了。

即是使用:

new SaveModelTransaction<>(ProcessModelInfo.withModels(peoples)).onExecute();

在save方法上出现如下异常:

android.database.sqlite.SQLiteConstraintException: PRIMARY KEY must be unique............

这个相关联的类以及方法,全部在beta6版本中去除。然后只提供了事务管理。

让我们自己去实现事务批量保存,结果可以了。完美兼容。

DatabaseDefinition database = FlowManager.getDatabase(DemoDatabase.class);        Transaction transaction = database.beginTransactionAsync(new ITransaction() {            @Override            public void execute(DatabaseWrapper databaseWrapper) {          // todo 处理list保存          ...          ...       }        }).build();transaction.execute();

 

转载于:https://www.cnblogs.com/CharlesGrant/p/5520840.html

你可能感兴趣的文章
docker中使用mysql数据库详解(在局域网访问)
查看>>
java定时器demo
查看>>
pipeline常用插件用法
查看>>
JS实现密码加密
查看>>
卓越年华家具有限公司介绍
查看>>
2016-03-30
查看>>
Python的语言类型
查看>>
l-oc-9
查看>>
angular.js (五)
查看>>
【转】网络制图法(Internet Cartography)
查看>>
Oracle网络TNS协议的几个基础类描述(revised)
查看>>
shell编程笔记
查看>>
Winform打砖块游戏制作step by step第三节---移动挡板
查看>>
hdu3999-The order of a Tree (二叉树的先序遍历)...
查看>>
corona物理引擎中物体有粘性的解决办法
查看>>
LA 6979 Known Notation 构造+贪心 铜牌题
查看>>
Linux MTD下获取Nand flash各个参数的过程的详细解析【转】
查看>>
Gson使用
查看>>
Integrate Your Code with the Frameworks---整合你的代码和框架
查看>>
欧拉回路和欧拉路径
查看>>