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高性能ORM数据库DBFlow入门

DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后。基于注解,使用...
  • whuhan2013
  • whuhan2013
  • 2016年06月12日 20:40
  • 2080

DBFlow—目前最好用的安卓数据库

数据库DBFlow应用场景及其分析
  • androidstarjack
  • androidstarjack
  • 2017年11月23日 13:17
  • 607

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

blablablablablablablabla....
  • github_35406082
  • github_35406082
  • 2016年06月23日 20:13
  • 566

总结之前项目的框架:MVP+Okhttp+Gson+Glide+DBFlow后期会修改不合理的地方

API层: 1 图片框架 2 数据库层: 2 Log层: 2 开发插件 2 UI层: 3 API层:(Retrofit + Okhttp + RxJava(&RxAndroid)+Gson...
  • u012482178
  • u012482178
  • 2016年11月04日 16:37
  • 1112

DBFlow 学习笔记(一)

走进 DBFLOW : 高性能的 Android ORM DB 库       有许多流行的 ORM DB 库(如:Active Android,Sprinkles,GreedDAO,Sugar...
  • love_android_2011
  • love_android_2011
  • 2015年02月11日 18:06
  • 4049

DBFlow 浅显应用

DBFlow 特点: 1.基于SQLite数据库,SQLite数据库是轻量级数据库,受到广泛的应用。故DBFlow可以支持原生的sqlite语句查询; 2.增删改查比用原生数据库语句简单,方便...
  • u012977315
  • u012977315
  • 2016年08月10日 18:15
  • 879

Android学习之数据库DBFlow的使用

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

Android DBFlow数据库入门笔记

Android DBFlow数据库入门笔记相比较SQLite数据库而言,DBFlow综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于...
  • mq2553299
  • mq2553299
  • 2017年03月20日 19:10
  • 759

DBFLOW的初使用

DBFLOW初使用 1、是什么? 2、android studio中配置引用 3、项目中使用.
  • u011520533
  • u011520533
  • 2016年07月03日 10:14
  • 2071

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

DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点。同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后。基于注解,使用...
  • u013164293
  • u013164293
  • 2016年04月03日 10:20
  • 518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DBFlow学习
举报原因:
原因补充:

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