DBFlow学习

原创 2016年08月29日 15:17:24

DBFLow学习


1. 环境配置

1)先倒入 apt plugin 库到你的classpath,以启用AnnotationProcessing(注解处理器):

     在工程的build.gradle中的dependencies添加一下代码

 如图:
这里写图片描述

添加代码如下:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

maven { url "https://jitpack.io" }

2)添加库到项目级别的build.gradle文件中了

 如图

这里写图片描述

 要复制的代码:

apply plugin: 'com.neenbedankt.android-apt'


apt 'com.github.Raizlabs.DBFlow:dbflow-processor:3.0.0-beta2'
compile "com.github.Raizlabs.DBFlow:dbflow-core:3.0.0-beta2"
compile "com.github.Raizlabs.DBFlow:dbflow:3.0.0-beta2"

// sql-cipher database encyrption (optional)
compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:3.0.0-beta2"

2.初始化DBFlow

初始化DBFlow的操作,放在可全局的Applaction中,记得要在AndroidManifest配置

  如图

这里写图片描述

FlowManager.init(this);

3. 创建数据库:

1)数据库创建

这里写图片描述

2)创建数据库表:

一个正确的数据表类需要以下几项:

(1)对类添加@Table注解
(2) 声明所连接的数据库类,这里是DBFlowDatabase。
(3)定义至少一个主键。
(4)这个类和这个类中数据库相关列的修饰符必须是包内私有或者public,这样生成的_Adapter类能够访问到它。

这里写图片描述

/**
 * Created by dell on 2016/8/29.
 */
@Table(database = DBFlowDatabase.class)
public class UserModel extends BaseModel {
    //必须继承BaseModel,BaseModel包含了基本的数据库操作(save、delete、update、insert、exists),
    // 可以发现这个表是关联上面定义的数据库

    //自增ID
    @Column
    @PrimaryKey(autoincrement = true)
    public Long id;
    @Column
    public String name;
    @Column
    public int sex;
}

    创建完成后,需要编译一下,点击编译按钮,或者Build->Make Project即可,它会自动生成一些数据库文件,也会提示你创建是否有误!

4.数据库操作:

1)增

这里写图片描述
UserModel people = new UserModel();
people.name = “fff”;
people.sex = 1;
people.save();
//people.update();//更新对象
//people.delete();//删除对象
//people.insert();//插入对象;

2)查

这里写图片描述

//返回单个查询结果
UserModel user = new Select().from(UserModel.class).querySingle();

//查询所有
List<UserModel> peoples = new Select().from(UserModel.class).queryList();

/查询sex = 1,姓名为fff 的所有user
 List<UserModel> userModels = new Select().from(UserModel.class)
            .where(UserModel_Table.sex.eq(1))
            .and(UserModel_Table.name.eq("fff"))
            .queryList();

3)删

这里写图片描述

//                //删除全部
//                new Delete().from(UserModel.class).execute();
//
//                //按条件删除
//                Where<UserModel> where = new Delete().from(UserModel.class)
//                        .where(UserModel_Table.name.eq("fff"))
//                        .and(UserModel_Table.sex.eq(0));
//                where.execute();

                //第二种删除方式

//                删除所有
//                SQLite.delete(UserModel.class).execute();

                //按条件删除
                SQLite.delete(UserModel.class)
                        .where(UserModel_Table.name.eq("fff"))
                        .and(UserModel_Table.sex.eq(0)).execute();

4) 改

这里写图片描述

            SQLite.update(UserModel.class).set(UserModel_Table.name.eq("aaa"))
                    .where(UserModel_Table.sex.eq(0))
                    .and(UserModel_Table.name.eq("fff"))
                    .execute();

5)运行结果如下:

这里写图片描述

5.数据库升级

1)添加新表

只需将数据库版本号修改即可,不修改版本号怎不会生成该表结构

这里写图片描述

2)对原来的表增加一个字段,(比如在UserModel中添加一个address字段,操作如下)

1.修改版本号,如上

2.修改对象表结构,添加address字段

这里写图片描述

3.build->Make Project更新表结构,然后编写Migration类

这里写图片描述

DBFlow的简单操作完毕,更多内容请参考官方文档

https://yumenokanata.gitbooks.io/dbflow-tutorials/content/index.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android学习之数据库DBFlow的使用

从事Android开发这么久,大大小小的项目也接触了十几个,但是数据库的应用却很少,因为现在大多数的数据操作都可以让后台来实现,但也少不了Android创建数据库的情况,当数据要求保存在本地,而且对增...

dbflow官方教程pdf版本

  • 2017年06月22日 01:51
  • 962KB
  • 下载

Dbflow3.0移植

  • 2016年03月25日 14:16
  • 1.43MB
  • 下载

Android DBFlow 超便捷高性能ORM数据库 入门

blablablablablablablabla....

DBFlow Migration

  • 2015年06月15日 08:41
  • 281KB
  • 下载

MVP+Okhttp+Gson+Glide+DBFlow

  • 2016年11月04日 16:30
  • 21.83MB
  • 下载

Android高性能ORM数据库DBFlow入门教程

DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后。基于注解,使用...

DBFlow3.0 数据库

  • 2016年03月25日 14:13
  • 2.25MB
  • 下载

FlexBoxLayout结合DBFlow实现流式布局

FlexBoxLayout结合DBFlow前言上一篇文章介绍了DBFlow的一下简单操作,这一次将继续使用DBFlow完成数据的存储。当然这一次我们集合使用了Google推出的FlexboxLayou...
  • Ruomiz
  • Ruomiz
  • 2017年04月21日 12:40
  • 188

Android DBFlow数据库入门笔记

Android DBFlow数据库入门笔记相比较SQLite数据库而言,DBFlow综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DBFlow学习
举报原因:
原因补充:

(最多只允许输入30个字)