Android开发——使用LitePal开源数据库框架
前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在
LitePal GitHub首页:https://github.com/LitePalFramework/LitePal
配置步骤
1.添加依赖
切换project模式,展开APP的文件夹,找到build.gradle文件,去里面添加依赖,这里我用的是最新版本,可以在LitePal的Github官网上找到最新的版本

2.配置LitePal.xml文件及相关设置
在main文件夹中新建一个asstes文件夹,之后,创建LitePal.xml,复制LitePal上的GItHub给出的代码,这里我就直接写了,其中,dbname代表数据库的名称,version代表版本号,list标签之下有表(专业术语为映射模型类),这里之后会提及

此外,我们还需要在AndroidMainfest文件中添加一行代码android:name="org.litepal.LitePalApplication"

3.创建一个Java Bean类
这里创建了一个书的bean类,有着三个成员变量,之后,使用alt+insert,选择getter and setter,添加get与set方法

4.在LItePal.xml文件中list标签下配置表(映射模型类)
记得包名要写完整

使用步骤:
1.创建和升级数据库
在相关activity的java文件直接使用LitePal的getDatabase方法创建数据库,即是添加下面的代码即可,写在onClick事件中即可,这里就不放截图
LitePal.getDatabase();
升级数据库,直接在Bean的java文件中添加新的成员变量及其的get与set方法即可,升级数据库的代码还是使用上面的那一行代码
举个例子,例如上述,我们想要添加一个出版社的列,我们只需要在Book里面创建一个成员变量,及get与set方法,之后,去LitePal.xml文件中,将version的版本加1,也就是改为2即可,其他的都不需要更改
例如,我们想要再加一张表,也是类似的操作,创建一个Bean类,之后,在LitePal.xml文件中使用mapping标签,同时,将版本号加一,也就是改为2即可,其他的也是不需要改变
2.添加数据
修改模型类(也就是Book),使其继承DataSupport

之后,我们只需要新建一个对象,调用其set方法,为其里面的成员变量赋值,之后,调用save方法,就是成功地往数据库中添加了数据

3.修改(更新)数据
更新的操作其实很简单,使用udateAll方法即可,例如,我们要将上面书名为The Last的作者改为John,价格改成16

updateAll里面写了约束条件,也就是书名为The Last的那一条数据,修改,如果updateAll里面无参数,就是将表里面的数据的作者与价格更改为John和16
4.删除数据
调用DataSupport的deleteAll方法,与上面的updateAll类似,参数里填约束条件,如果不写,就是删除整张表
DataSupport.deleteAll(Book.class,"name is ?","The Last");//删除名字为The Last的数据
DataSupport.deleteAll(Book.class,"name is ? and price is ?","The Last","15");//删除名字为The Last,价格为15的的数据
DataSupport.deleteAll(Book.class,"price < ?","16");//删除价格低于16的数据
5.查找数据
查找方法调用的DataSupport的findAll方法即可,下面给出示例代码
select指定查询列,where查找出符合约束条件的数据,order将查询结果排序,limit限制查询数据数目
List<Book> books = DataSupport.findAll(Book.class);//查找Book这张表的全部数据,返回的是一个List
List<Book> books1 = DataSupport.select("name","price").find(Book.class);//指定查询Book这张表中的name与price两列的数据,返回的也是一个List
List<Book> books2 = DataSupport.where("price > ?","16").find(Book.class);//指定在Book这张表查找符合价格大于16(约束条件)的数据,返回的是一个List
List<Book> books4 = DataSupport.order("price desc").find(Book.class);//将查询结果按照价格从高到低排序(desc 降序),不写或者asc则是升序
List<Book> books5 = DataSupport.limit(3).find(Book.class);//查询Book表中的前三条数据
值得一提的是,可以使用findBySQL方法进行原生的查询,也就是之前使用内置数据库的方法,返回的是一个Cursor对象,这里我就不使用了

Android开发——使用LitePal开源数据库框架的更多相关文章
- Android开发——使用LitePal开源数据库
前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal Gi ...
- android开发之使用SQLite数据库存储
http://blog.csdn.net/jason0539/article/details/16360835 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且 ...
- 在Android 开发中使用 SQLite 数据库笔记
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PH ...
- Android开发中用到的第三方框架汇总
最近上网搜索了一些框架资料,整理了以下常用框架,希望在项目中有所帮助. 1.网络请求框架 android-async-http 该网络框架的介绍文章地址:http://www.cnblogs.com/ ...
- Android开发使用的常见第三方框架汇总
本文转载:http://blog.csdn.net/liuhaomatou/article/details/44857005 1.volley 项目地址 https://github.com/sman ...
- Android开发使用的常见第三方框架
1.SlidingMenu 官网:https://github.com/jfeinstein10/SlidingMenu 网友使用:http://blog.csdn.net/yangyu2012122 ...
- Android开发笔记:打包数据库
对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...
- Android开发--数据存储之数据库操作
简介: SQLite 的介绍: SQLite数据库属于文本型的数据库,它是以文本的形式来保存的.Android提供了对 SQLite 数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据 ...
- android项目中使用开源数据库litepal
下载地址 https://github.com/LitePalFramework/LitePal 参考文档 http://blog.csdn.net/guolin_blog/article/detai ...
随机推荐
- 使用jQuery.form库中ajaxSubmit提交表单时遇到的一些问题
初入前端,网上找的很多资料都不够详细,导致遇到很多问题,现记录如下: 1.首先引入 <script src="~/Scripts/jquery-1.10.2.js">& ...
- mysql中Table is read only的解决方法
首先去到mysq的bin目录 cd /usr/local/mysql/bin 执行如下mysqladmin ./mysqladmin -p flush-tables 接着输入数据库存的root密码即可
- swust oj 1016
插入排序算法实现 1000(ms) 10000(kb) 2613 / 6080 插入排序算法实现. 输入 第一行是待排序数据元素的个数: 第二行是待排序的数据元素. 输出 一趟直接插入排序算法结果. ...
- Shadow Copying导致ASP.NET应用启动很慢的解决办法
What's Shadow Copying? 我们安装一个应用程序并启动后,我们是无法更新应用程序安装目录中程序集文件的.如果强制替换会提示文件正在使用,如下图所示. 那你可能会问,为什么会无法更新呢 ...
- Spring Cloud Eureka 使用 IP 地址进行服务注册
默认情况下,Eureka 使用 hostname 进行服务注册,以及服务信息的显示,那如果我们使用 IP 地址的方式,该如何配置呢?答案就是eureka.instance.prefer-ip-addr ...
- 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识
第16章 UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...
- 数据库索引使用数据结构及算法, 及MySQL不同引擎索引实现
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- [Swift]LeetCode498. 对角线遍历 | Diagonal Traverse
Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal ...
- [Swift]LeetCode914.一副牌中的X | X of a Kind in a Deck of Cards
In a deck of cards, each card has an integer written on it. Return true if and only if you can choos ...
- BBS论坛(二十三)
23.添加板块 (1)apps/models class BoardModel(db.Model): __tablename__ = 'board' id = db.Column(db.Integer ...