@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<Person> 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<Integer> uidList = new ArrayList<>();
SQLCondition condition = Condition.column(Person_Table.uid.getNameAlias()).in(uidList); // 1 查询
List<Person> 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();

dbflow 批量 增删查改的更多相关文章

  1. MERGE批量增删查改数据

    MERGE优点: 在批量处理数据的时候,我可以用到merge一次完成数据处理. 示例代码一: MERGE INTO student AS t using ( AS age) s ON t.Age=s. ...

  2. Mybatis 的动态SQL,批量增删查改

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 批量增删改的接口: public interface BookService { //批量增加 int ...

  3. 8天学通MongoDB——第二天 细说增删查改

    原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/02/19/2357846.html 看过上一篇,相信大家都会知道如何开启mongodb了 ...

  4. [置顶] cocos2dx sqllite 增删查改等操作

    首先导入文件shell.c sqllite3.c sqlite3.h sqlite3etx.h文件(注意在生成安卓项目是 不要将shell.c写进android.mk文件中,写进去在cywin中生成会 ...

  5. [MongoDB] MongoDB增删查改

    MongoDB的三元素,数据库.集合.文档,集合就是表,文档就是行 开启MongoDB,cd切换到MongoDB的安装目录下的bin目录里,使用命令mongod 开启,参数:--dbpath 路径,把 ...

  6. ADO.NET教程(2)实现增删查改

    声明一个类,在类中实现增删查改的方法 public class AdoNet { //声明连接字符串 public string Sqlstr = "data source={0};data ...

  7. Entity Framework(三)---FluentAPI和增删查改

    一.FluentAPI: 1.基本配置: namespace ConsoleApp14.ModelConfig { public class PersonConfig: EntityTypeConfi ...

  8. MongoDB入门学习(三):MongoDB的增删查改

            对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改.         由于M ...

  9. [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版

    (课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...

随机推荐

  1. 网页特效:用CSS3制作3D图片立方体旋转特效

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. thinkphp 3.2加载类

    基础方式(自动加载) 控制器: public function ff(){ $t = new \Org\Util\Abc(); echo $t->ss(); } ThinkPHP\Library ...

  3. 在Application中集成Microsoft Translator服务之翻译语言代码

    Microsoft  Translator支持多种语言,当我们获取服务时使用这些代码来表示我们是使用哪种语言翻译成什么语言,以下是相关语言对应的代码和中文名 为了方便我已经将数据库上传到云盘上,读者可 ...

  4. 大熊君JavaScript插件化开发------(实战篇之DXJ UI ------ Tab)

    一,开篇分析 Hi,大家好!大熊君又和大家见面了,还记得前两篇文章吗.主要讲述了以“jQuery的方式如何开发插件”,以及过程化设计与面向对象思想设计相结合的方式是 如何设计一个插件的,两种方式各有利 ...

  5. 2、HTML 基础知识

    一.HTT(PHyper Text Markup Language)即超文本语言. 特点: 1.通过标签来定义的语言,代码都是由标签所组成 2.不区分大小写 3.由<html>开始< ...

  6. Hadoop-HBASE案例分析-Hadoop学习笔记<二>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...

  7. [Math] 常见的几种最优化方法

    我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等.最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素 ...

  8. Windows - 杀死占用某个端口号的进程

    Windows不像Linux,Unix那样,ps -ef 查出端口和进程号,然后根据进程号直接kill进程. Windows根据端口号杀死进程要分三步: 第一步 根据 端口号 寻找 进程号 C:\&g ...

  9. 用C语言,如何判断主机是 大端还是小端(字节序)

    所谓大端就是指高位值在内存中放低位地址,所谓小端是指低位值在内存中放低位地址.比如 0x12345678 在大端机上是 12345678,在小端机上是 78564312,而一个主机是大端还是小端要看C ...

  10. Linux 新建用户、用户组,给用户分配权限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...