本文知识点

  1. LitePal的集成
  2. LitePal实现数据库的增删改查
  3. 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开源数据库相关推荐

  1. android 开源 数据库,Android开源数据库框架-LitePal的使用

    简介 LitePal是一款开源的Android数据库框架,采用了关系映射的模式.LitePal在github上的项目地址:github.com/LitePalFram- 配置LitePal depen ...

  2. android开源数据库,Android Hawk数据库 github开源项目

    Android Hawk数据库 github开源项目 Hawk 是一个很便捷的数据库  . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 . github 地址: https://github. ...

  3. Android客户端开发—开源数据库框架LitePal

    LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,不使用SQL语句就可以完成创建表以及表单的CRUD操作,并且很轻量级,几乎零配置.(它将 ...

  4. Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架

    今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...

  5. Android开源库

    PagerSlidingTabStrip 配合ViewPager使用的交互式页面指示器控件. leakcanary 它是一个Android和Java的内存泄露检测库,可以大幅度减少了开发中遇到的OOM ...

  6. 优秀的Android开源框架(持续更新)

    开源是软件发展的趋势,越来越多的人投入到开源世界中去.我们可以从开源世界中获得很多有益的东西,本着不重复造轮子的精神,我们应该充分利用这些开源项目的成果.本文会持续更新涌现出来的优秀开源框架. UI ...

  7. Android开源项目分类整理

    Android开源项目分类整理 字数1492 分类整理平时收集的项目,便于查找. Android 架构 Mosby A Model-View-Presenter library for modern ...

  8. Android开源项目分类汇总-转载

    太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...

  9. Android开源项目分类汇总[转]

    Android开源项目分类汇总 如果你也对开源实现库的实现原理感兴趣,欢迎 Star 和 Fork Android优秀开源项目实现原理解析 欢迎加入 QQ 交流群:383537512(入群理由需要填写 ...

  10. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...

最新文章

  1. kafka 监控(eagle)
  2. 在持续交付中加入自动化验收测试支持
  3. JS字符串类型转日期然后进行日期比较
  4. 双色球python十种算法_python : 蒙特卡罗算法 应用于双色球
  5. [MongoDB] MongoDB的安装以及问题
  6. opencv的一些滤镜效果
  7. 进行有效客户细分的八个步骤
  8. 坚持就是成功,没有成功就是你失败的次数太少
  9. 2013年全国统一题库考试-小型汽车驾照模拟考试C1,C2,C3,C4
  10. Gom引擎如何进行“称号系统”的设置详细介绍
  11. SQL数据库练习题以及答案(46例题)
  12. html特效文本框,各种html文本框input特效
  13. Intel NUC10i7FNH 寒霜峡谷测试体验
  14. Windows清理C盘空间
  15. ROG GL552VW BIOS 编程器官方固件
  16. 2011年国外最受欢迎的15个电影网站
  17. 7-20 帅到没朋友
  18. 微型计算机的体积虽小 但是性价比比较高,[问答题,简答题] 简述公共管理与企业管理的区别。...
  19. EDA(Quartus II)——乐曲硬件演奏电路设计
  20. 浅析锂电池保护板(BMS)系统设计思路(二)

热门文章

  1. python获取淘宝服务器的毫秒级时间
  2. es7.3.2中文+拼音分词 排除同音字
  3. CSDN账号登录异常,一个网址帮你找回账号
  4. mldn andoird
  5. Win11 可能解决Tomcat文件bin中startup打不开闪烁进不去的方法
  6. SSH婚庆策划系统案例
  7. 使用BackTrack4破解Windows用户密码
  8. 计算机等级考试数据库三级知识点吐血总结!!!
  9. 蓝桥杯官网练习系统基础练习(八)
  10. 叉乘:基于虚拟线圈法的车流量统计