LitePal的使用——Android开源数据库
本文知识点
- LitePal的集成
- LitePal实现数据库的增删改查
- LitePal常用的API
1. LitePal的集成
- 引入相应的类库
- 创建litepal.xml
- 更换继承的Application
1.1 引入相应的类库
//litepal数据库implementation 'org.litepal.guolindev:core:3.2.3'
1.2 创建litepal.xml
litepal.xml是在assets文件夹下,
项目main路径下New->Folder->AssetsFolder就可以创建相应的assets文件夹,
然后在assets文件夹下创建一个相应的litepal.xml文件夹。
<?xml version="1.0" encoding="utf-8"?>
<litepal><!--数据库名--><dbname value="BookStore" /><!--数据库版本号--><version value="1" /><!--映射模型--><list><mapping class="com.fw.androidone.sqlitelitepal.entity.Book" /></list>
</litepal>
- dbname标签是相应的数据库名称
- version标签是相应的数据库的版本 (当里面引用的内容发生改变的时候,要升级相应的版本)
- list标签哪些对象需要数据库管理 (mapping里面的路径一定要是全路径名称) (list标签中的实体类都应该继承LitePalSupport这个类)
1.3 更换继承的Application
(1)已经有继承的Application
(2)直接继承LitePalApplication
(1)已经有继承的Application
直接在Application的onCreate方法中对数据库进行初始化
@Overridepublic void onCreate() {super.onCreate();//数据库初始化LitePal.initialize(this);}
(2)直接继承LitePalApplication
直接继承相应的LitePalApplication这里就不用在onCreate()中调用LitePal.initialize(this);
在application标签中添加Application的时候要这样写
android:name="org.litepal.LitePalApplication"
2.LitePal中实现增删改查
2.1 新增数据
使用save()方法
Book book = new Book();
book.setAuthor("王天一");
book.setName("王天一的第一本书");
book.save();
2.2 删除数据
delete()或者deleteAll()进行删除
Book book = new Book();
book.setAuthor("王天二");
book.setName("王天二的第一本书");
book.save();
book.delete();
//删除book表中price=44.6786的这条数据
LitePal.deleteAll(Book.class, "name = ?", "王天二");
2.3 更新数据
1、更改完相应的数据直接save保存
2、updateAll方法实现
//方式一:对已经存储的数据进行更新
Book book = new Book();
book.setAuthor("王天二");
book.setName("王天二的第一本书");
book.save();
// 重新修改价格,然后点用save方法,
// 此时,litapal数据库中会发现该数据之前已经存储在数据库中,所以进行更新价格操作。而不会重新插入一条数据。
book.setName("王天三");
book.save();
//方式二:updateAll方法实现
Book book1 = new Book();
book1.setPrice(44.6786);
book1.updateAll("name = ? and author = ?", "王天二的第一本书", "王天二");
2.4 查询数据
主要用到find()和findAll()等相应的方法、
//查询所有数据
List<Book> bookList = LitePal.findAll(Book.class);//查询第一条数据
Book firstBook = LitePal.findFirst(Book.class);//查询最后一条数据
Book lastBook = LitePal.findLast(Book.class);//按照条件查询
//(1)select()方法用于指定查询哪几列的数据,对应sql中的select关键字
List<Book> books = LitePal.select("name", "author").find(Book.class);//(2) where()用于指定查询的约束条件,对应了sql中的where关键字
List<Book> books1 = LitePal.where("page > ?", "100").find(Book.class);//(3) order()方法用于指定结果的排序方式,对应了sql当中的order by 关键字
List<Book> books2 = LitePal.order("price desc").find(Book.class);//(4) limint()方法用于指定查询结果的数量
List<Book> books3 = LitePal.limit(3).find(Book.class);//查询表中前3条数据//(5)offset() 方法用于指定查询结果的偏移量
List<Book> books4 = LitePal.limit(3).offset(1).find(Book.class);//查询表中第2条、第3条、第4条数据//(6) 组合使用查询
List<Book> books5 = LitePal.select("name", "author").where("page > ?", "100").order("price").limit(3).offset(2).find(Book.class);//查询Book表中第3~5条满足page>100页这个条件的name、author这两列数据,并且查询结果按照price升序排序//LitePal使用原声SQL查询
Cursor cursor = LitePal.findBySQL("select * form Book where page > ? and price < ?", "100", "60");
3.LitePal常用的API
- 查询第一条数据
LitePal.findFirst(Book.class);- 查询最后一条数据
LitePal.findLast(Book.class);- select()方法用于指定查询哪几列的数据,对应sql中的select关键字 LitePal.select(“name”,“author”).find(Book.class);
- where()用于指定查询的约束条件,对应了sql中的where关键字
LitePal.where(“page > ?”, “100”).find(Book.class);- order()方法用于指定结果的排序方式,对应了sql当中的order by 关键字 LitePal.order(“price desc”).find(Book.class);
- limint()方法用于指定查询结果的数量
LitePal.limit(3).find(Book.class);//查询表中前3条数据- offset() 方法用于指定查询结果的偏移量
LitePal.limit(3).offset(1).find(Book.class);//查询表中第2条、第3条、第4条数据
LitePal的使用——Android开源数据库相关推荐
- android 开源 数据库,Android开源数据库框架-LitePal的使用
简介 LitePal是一款开源的Android数据库框架,采用了关系映射的模式.LitePal在github上的项目地址:github.com/LitePalFram- 配置LitePal depen ...
- android开源数据库,Android Hawk数据库 github开源项目
Android Hawk数据库 github开源项目 Hawk 是一个很便捷的数据库 . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 . github 地址: https://github. ...
- Android客户端开发—开源数据库框架LitePal
LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,不使用SQL语句就可以完成创建表以及表单的CRUD操作,并且很轻量级,几乎零配置.(它将 ...
- Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架
今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...
- Android开源库
PagerSlidingTabStrip 配合ViewPager使用的交互式页面指示器控件. leakcanary 它是一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM ...
- 优秀的Android开源框架(持续更新)
开源是软件发展的趋势,越来越多的人投入到开源世界中去.我们可以从开源世界中获得很多有益的东西,本着不重复造轮子的精神,我们应该充分利用这些开源项目的成果.本文会持续更新涌现出来的优秀开源框架. UI ...
- Android开源项目分类整理
Android开源项目分类整理 字数1492 分类整理平时收集的项目,便于查找. Android 架构 Mosby A Model-View-Presenter library for modern ...
- Android开源项目分类汇总-转载
太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...
- Android开源项目分类汇总[转]
Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork Android优秀开源项目实现原理解析 欢迎加入 QQ 交流群:383537512(入群理由需要填写 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...
最新文章
- kafka 监控(eagle)
- 在持续交付中加入自动化验收测试支持
- JS字符串类型转日期然后进行日期比较
- 双色球python十种算法_python : 蒙特卡罗算法 应用于双色球
- [MongoDB] MongoDB的安装以及问题
- opencv的一些滤镜效果
- 进行有效客户细分的八个步骤
- 坚持就是成功,没有成功就是你失败的次数太少
- 2013年全国统一题库考试-小型汽车驾照模拟考试C1,C2,C3,C4
- Gom引擎如何进行“称号系统”的设置详细介绍
- SQL数据库练习题以及答案(46例题)
- html特效文本框,各种html文本框input特效
- Intel NUC10i7FNH 寒霜峡谷测试体验
- Windows清理C盘空间
- ROG GL552VW BIOS 编程器官方固件
- 2011年国外最受欢迎的15个电影网站
- 7-20 帅到没朋友
- 微型计算机的体积虽小 但是性价比比较高,[问答题,简答题] 简述公共管理与企业管理的区别。...
- EDA(Quartus II)——乐曲硬件演奏电路设计
- 浅析锂电池保护板(BMS)系统设计思路(二)