Android 数据库 哪个好,目前最好用的安卓数据库,DBFlow使用详解

1.在你使用之前,建议你先阅读一下官方文档

https://agrosner.gitbooks.io/dbflow/content/

2.步骤如下:

(1)在项目级的gradle中添加

buildscript {

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.3.2'

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

}

}

allprojects {

repositories {

jcenter()

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

}

}

(2)在Module级别的gradle中添加

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

def dbflow_version = "4.0.2"

dependencies {

apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"

compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"

compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"

// sql-cipher database encyrption (optional)

compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}"

}

(3)在你的Application的onCreate()方法中初始化

@Override

public void onCreate() {

super.onCreate();

FlowManager.init(new FlowConfig.Builder(this).build());

// FlowManager.init(this);//这句也可以初始化

}

(4)新建AppDatabase类,配置数据库相关参数

package song.peter.com.custompassword.dbflow;

import com.raizlabs.android.dbflow.annotation.Database;

import com.raizlabs.android.dbflow.annotation.Migration;

import com.raizlabs.android.dbflow.sql.SQLiteType;

import com.raizlabs.android.dbflow.sql.language.SQLite;

import com.raizlabs.android.dbflow.sql.migration.AlterTableMigration;

import com.raizlabs.android.dbflow.sql.migration.BaseMigration;

import com.raizlabs.android.dbflow.structure.database.DatabaseWrapper;

/**

* Created by peter on 2017/5/19.

*/

@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)

public final class AppDatabase {

//数据库名称

public static final String NAME = "AppDatabase";

//数据库版本号

public static final int VERSION = 1;

}

(5)新建数据库表

package song.peter.com.custompassword.dbflow;

import com.raizlabs.android.dbflow.annotation.Column;

import com.raizlabs.android.dbflow.annotation.PrimaryKey;

import com.raizlabs.android.dbflow.annotation.Table;

import com.raizlabs.android.dbflow.structure.BaseModel;

import java.util.UUID;

/**

* Created by peter on 2017/5/19.

* 要继承BaseModel,这个类已经实现了增删改查的方法

*/

@Table(database = AppDatabase.class)

public class UserData extends BaseModel {

@PrimaryKey(autoincrement = true)//ID自增

public long id;

/**

* 姓名

*/

@Column

public String name;

/**

* 年龄

*/

@Column

public int age;

/**

* 性别

*/

@Column

public boolean sex;

//备注:DBFlow会根据你的类名自动生成一个表明,以此为例:

//这个类对应的表名为:UserData_Table,这是作者在实践中得出来的

}

(6)具体使用

UserData userData = new UserData();

ModelAdapter adapter = FlowManager.getModelAdapter(UserData.class);

userData.id = 1;//这一行必须加,必须指定id,后面才能根据id修改某一条的数据

userData.name = "张三";

userData.age = 99;

userData.sex = true;

adapter.insert(userData);//插入

adapter.delete(userData);//删除

adapter.update(userData);//修改

//修改的时候的代码

UserData userData = new UserData();

userData.id = 1;

userData.name = "9999";

userData.update();//只有继承了BaseModel才能用这个方法,否则调用这个方法adapter.update(userData);

//再来点福利,update高级用法,增删改查都是同理,就不一一列举了

SQLite.update(UserData.class).set(UserData_Table.name.eq("888")).where(UserData_Table.id.eq(1)).execute();

//UserData_Table就是DBFlow自动生成的表明,在(5)的备注中已经提到了

//查询

List list = SQLite.select().from(UserData.class).queryList();

(7)数据库增加字段

7.1 修改数据库的版本号

public static final int VERSION = 2;

7.2 修改数据库表结构

@Column

public String content;//增加的字段

7.3 这个时候,需要Make Project一下,Mac版的可以直接commond+F9 ,或者直接点那个按钮

7.4 在AppDatabase这个数据库配置类中,添加方法如下:

/**

* 数据库的修改:

* 1、PatientSession 表结构的变化

* 2、增加表字段,考虑到版本兼容性,老版本不建议删除字段

*/

@Migration(version = VERSION, database = AppDatabase.class)

public static class Migration2UserData extends AlterTableMigration {

public Migration2UserData(Class table) {

super(table);

}

@Override

public void onPreMigrate() {

addColumn(SQLiteType.TEXT, "content");

}

}

(8)到此,关于DBFlow相关的介绍也就结束了,具体关于内连,外联,左联接,右联接,外键,一对多等等,可以查阅官方文档。

https://agrosner.gitbooks.io/dbflow/content/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 左右卡片切换,3D卡片切换

源码片段public class MainActivity extends FragmentActivity implements OnCardClickListener{List list;private TestFragment frag;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ma…

c# 修改xslt并转为html,c#使用XSLT将xml文档转换为html文档

c#使用XSLT将xml文档转换为html文档使用xslt可以将xml文档转成html,如下c#函数:需要引用下面的命名空间:using System.Xml;using System.Xml.Xsl;方法实现:public static string ConvertXML(XmlDocument InputXMLDocument, string…

华为正式官宣鸿蒙OS,华为正式官宣,鸿蒙OS 2.0系统即将问世,Mate 40有望首发

由于华为5G技能取得了突破性的领先,美国对其采取了实体清单操持。意图干涉华为的发展速率,但实际上对于华为影响最大的却是软件方面的“断供”。在美国发布实体清单短短数月之后,谷歌公布停止对于华为手机系统的GMS服务授权。间接导致了华为手…

html音频控件隐藏,html5 – Html 5音频标签自定义控件?

你创建你的元素如此…play!并添加一些功能:var yourAudio document.getElementById(yourAudio),ctrl document.getElementById(audioControl);ctrl.onclick function () {// Update the Buttonvar pause ctrl.innerHTML pause!;ctrl.innerHTML pause ? play!…

html 列表点,HTML列表

HTML ListsHTML lists allow web developers to group a set of related items in lists.ExampleAn unordered HTML list:ItemItemItemItemAn ordered HTML list:First itemSecond itemThird itemFourth item来试试吧 Unordered HTML ListAn unordered list starts with the ta…

笔记本html连接电视机,详细教您笔记本连接电视

很多时候我们想要通过电视机来在线看电影,而苦于笔记本的屏幕尺寸太小了,心想着要是笔记本能连接上电视该有多好。其实现在的电视提供了很多连接电脑的功能,简单操作一下就可以实现,那笔记本怎么连接电视呢?下面一起来…

joomla自定义html,Joomla教程:为页面和模块添加独立的自定义Class

在Joomla的菜单项和模块设置中,页面Class后缀(Page Class Suffix)和模块Class后缀(Module Class Suffix)这两个参数允许你为Joomla生成的HTML页面增加自定义的class,使我们可以通过CSS为一些页面或模块设定独特的样式。在添加自定义class时,我…

html5的form如何使用方法,HTML5 FormData方法介绍

Openjudge 1&period;13-21&colon;最大质因子序列(每日两水)总时间限制: 1000ms 内存限制: 65536kB 描述 任意输入两个正整数m, n (1 < m < n < 5000),依次输出m到n之间每个数的最大质因子(包括m和n ...SVN出现Invalid authz configuration解决方案思路: 1.检…

有人不会使用计算机的反义,现代汉语练习题及答案

现代汉语练习题三、例题解析(一)历年真题解析1、填空。(每空1分&#xff0c;共20分。错别字不给分)1、yang这个音节的声母是。20052、普通话中&#xff0c;声母j只能与撮口呼和呼相拼。20053、“电器”和“微波炉”两词&#xff0c;从意义关系上看&#xff0c;是词。20054、从来…

计算机网络静态路由大作业 3地互联,计算机网络-静态路由配置

计算机网络综合实习三&#xff1a;路由器基本配置一、实验目的通过实验掌握利用路由器实现网络互联的一般方法&#xff0c;掌握基本的路由器配置命令。二、实验原理不同的计算机网络在技术和工作方式上的差异&#xff0c;是需要进行网络互联的基本原因。在现实的应用中&#xf…

计算机上网英语词汇,计算机网络专用英语词汇1500词

计算机专用英语词汇1500词Sample Text Sample Text电脑日常用语和术语大集合~~电脑专业英语1500词《电脑专业英语》1. file n. 文件&#xff1b;v. 保存文件2. command n. 命令&#xff0c;指令3. use v. 使用&#xff0c;用途4. program n. 程序5. line n. (数据&#xff0c;程…

台式机没有显示计算机图标,为什么台式电脑没有喇叭图标

使用电脑的过程中&#xff0c;有时候会遇到电脑的音量图标突然不见的情况&#xff0c;怎么办?下面是学习啦小编为大家整理的关于台式电脑没声音图标的相关资料&#xff0c;希望对您有所帮助!台式电脑没声音图标的解决方法首先点击“开始”按钮&#xff0c;找到“控制面板”选项…

idea直接打开html报404,idea部署Tomcat启动成功了但是页面出现404

MyBatis在IDEA中的第一个程序MyBatis在IDEA中的第一个程序 MyBatis idea 第一个程序 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或…

李娟计算机学院,李娟(北京工业大学软件学院副教授)_百度百科

李娟(北京工业大学软件学院副教授)语音编辑锁定讨论上传视频本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;李娟&#xff0c;副教授&#xff0c;北京工业大学软件学院教师。2002年获山东大学计算机软件与…

中央音乐学院计算机研究生,2020北京中央音乐学院硕士研究生招生复试电子音乐作曲、电子音乐技术理论等考生须知...

为规范考试程序&#xff0c;严肃考试纪律&#xff0c;杜绝考试过程中的各种舞弊现象&#xff0c;经学院研究后决定&#xff1a;本次考试所有考生必须使用学院统一配备的计算机主机(iMAC-Retina5k&#xff0c;27-inch)&#xff0c;专业声卡(Presonus-studio68c)。可使用学院的苹…

关于计算机哪些学校好,计算机哪些学校好

计算机科学与技术专业哪些学校好呢?有同学了解过吗&#xff0c;没有的话&#xff0c;快来小编这里了解了解吧。下面是由出国留学网小编为大家整理的“计算机科学与技术专业哪些学校好”&#xff0c;仅供参考&#xff0c;欢迎大家阅读。计算机科学与技术专业哪些学校好1. 清华大…

上海的计算机考研学校排名2015,上海排名前十的考研学校

1考研 数学三大题方法考研数学大题占了很大的分值&#xff0c;所以往往水平差不多的学生在分数上会有不小的差距&#xff0c;这就需要同学们平时做题时需要掌握的技巧和策略&#xff0c;那么&#xff0c;小编就来给大家分享一些关于考研数学三大题方法的建议。一、踩点得分对于…

计算机培训开场语,辅导班家长会主持词开场白

【仅供学习参考&#xff0c;切勿通篇使用&#xff01;】等孩子长大了&#xff0c;再想好好教育就没有机会了。这时候前人的方法和经验就显得尤其重要了下面是由76范文网小编为大家整理的“辅导班家长会主持词开场白”&#xff0c;仅供参考&#xff0c;欢迎大家阅读。辅导班家长…

计算机控制系统的闭环复极点,计算机控制 第四章 2.ppt

计算机控制 第四章 276 计算机控制Computer Control 第4章 计算机控制系统特性分析 计算机控制系统稳定性分析 计算机控制系统的稳态误差分析 计算机控制系统的暂态响应分析 双速率采样控制系统分析 4.3计算机控制系统暂态响应分析 表征系统暂态响应特性的参数 表征系统暂态响应…

机械系统计算机控制试卷及答案,机械系统设计试题及答案

如有帮助&#xff0c;欢迎下载支持&#xff01;内蒙古民族大学2013-2014学年二学期试卷答案(考查)课程名称&#xff1a;机械系统设计考试时间&#xff1a;110分钟年级&#xff1a;11级专业&#xff1a;机制、农机一、简答题(6小题&#xff0c;共60分)1、什么是专家系统&#xf…