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

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

相关文章推荐

DBFlow学习

DBFLow学习DBFLow学习 环境配置 1先倒入 apt plugin 库到你的classpath以启用AnnotationProcessing注解处理器 2添加库到项目级别的buildgradl...

DBFlow框架的使用

一、配置DBFlow插件 1.在项目的build.gradle中添加// Top-level build file where you can add configuration options co...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

DBFlow for eclipse 移植

根据DBflow3.0移植过来的,移植过程中有很多问题,比如类找不到啊,因为代码比较多修改起来比较慢,而且移植到eclipse上面提前编译直接报错,还找不到错误的原因,没办法只有一步一步的通过文件打l...

DBFlow 浅显应用

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

Android学习之数据库DBFlow的使用

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

Dbflow:Model object: xxxx is not registered with a Database. Did you forge an annotation?

错误代码: 错误描述,在三星、小米手机上运行没问题,在华为手机上抛出这个异常。 网上查询没有找到原因。 官网上提示说没有在application初始化的情况会抛出这个异常,但是初始化以...

DBFlow的初步使用

前言最近刚好有点时间,就想重温一下Android 数据库的相关知识。以前一直使用GreenDao,感觉操作起来代码比较冗余。就准备研究一下另外一种框架DBFlow。DBFlow偶然发现DBFlow O...

体验Android ORM之DBFlow

DBFlow综合了 Active Android, Schematic, Ollie,Sprinkles 等库的优点;不通过消耗性能的反射而通过注解实现,性能好(Referer); https://g...

翻译 DBFlow Getting Started 入门指南

翻译DBFlow Getting Started 入门指南

学习资料(1)-学习网站,Linux,Git,博客

Linux 学习 实验楼注册,和熟悉 Linux基础实验 Linux 基础教程 说明:2是实验,不需要再安装了,实验楼是有环境的,可以直接看3的视频教程,然后在实验楼做一下实验就可以了 主要是 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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