一.LitePal简介

LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发最常用到的一些数据库功能进行了封装,使得不用编写一行SQL语句就可以完成各种建表和增删改查的操作,并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。

GitHub : http://github.com/LitePalFramework/LitePal

二.LitePal的使用

1.添加依赖

在app/build.gradle文件中添加compile依赖如下:

dependencies {compile 'org.litepal.android:java:3.0.0'
}
2.在assets目录下创建litepal.xml配置文件

项目文件夹下New->Folder->Assets Folder创建相应的assets文件夹,然后在assets文件夹下创建一个名为litepal.xml的文件,编辑文件如下:

<?xml version="0.1" encoding="utf-8"?>
<litepal><dbname value="lss0555_litepaldemo" />            // 数据库名称为litepaldemo,默认以 .db 结尾,如未以此结尾,则自动添加。<version value="1" />                     // 数据库版本为1,每次数据库发生变动版本号必须+1<list>                                    // 有几张表就在list之间写几个mapping// list标签中的实体类都应该继承LitePalSupport这个类,这个千万别忘记<mapping class="example.com.litepal.model.New"></mapping></list><storage value="lss0555/litepal/database" />  //storage 定义数据库文件存储的地方,可选 internal(内部) 和 external(外部), 默认为 internal
</litepal>
3.在Application中初始化

在自己的application中加入一行代码即可:

public class MyApplication extends Application { @Override public void onCreate() { super.onCreate();// 初始化LitePal.initialize(this); }  ... }

经过上面3步的配置,LitePal就已经集成成功并可以正常使用了。

三.使用测试

1.实体类创建
/*** Created by lss0555 on 2019/3/11/011.* 从LitePal 2.0.0版本开始建议使用继承LitePalSupport类,* DataSupport类已经被标为了废弃,虽然暂时还可以正常工作,但是不建议再继续使用了*/public class New extends LitePalSupport {private int id;//不为空@Column(nullable = false)private String title;@Columnprivate String detail;@Columnprivate String imgurl;
注意:
  • 不管实体类中有没有id这个属性,都会默认创建一个为整型的id字段,作为自增的主键
  • 如果实体类中有一个字段名为id,那么类型只能为int或者long
  • id字段的值始终为当前记录的行号(下标从1开始),即使我们在实体类中定义了int或者long类型的id字段,在添加数据时人为的设置id的值为100,等其他值,查询数据库发现该id字段的值设置是无效的,她始终等于该条记录所在的行id,即第几条记录。
  • 所有的column注解总共有四个,defaultValue的默认值为空字符,所以这个注解只能用以是String类型的字段,即字符型才有默认值
  • litepal支持的实体类字段映射类型为 int,long,double,float,byte[],boolean,String,Date;不支持String[]数组型

2.数据库增删改查操作

(1) .存储操作
        New aNew = new New();aNew.setTitle("新闻1");aNew.setDetail("详情1");aNew.setImgurl("http://www.baidu.com");aNew.setUserid("lss0888");aNew.save();

save()方法是有返回值的,返回true代表添加成功,返回flase代表添加失败。

save()是添加一条数据,批量添加是 LitePal.saveAll(news);

(2). 删除记录
//删除数据库中new表的所有记录
LitePal.deleteAll(New.class); //删除数据库new表中id为1的记录
LitePal.delete(New.class,1); //删除数据库new表中idn大于3的记录
LitePal.delete(Movie.class, "id > ?" ,3);
(3). 修改记录

1.根据条件修改

New aNew = new New();
aNew.setTitle("新闻11新闻11新闻11");
aNew.setDetail("详情1新闻11新闻11新闻11");
aNew.setImgurl("http://www.baidu.com新闻11");
aNew.setUserid("lss0888新闻11");
aNew.update(11);

2.更新所有title为新闻1的记录,将title字段设为标题2

New aNew = new New();
aNew.setTitle("标题2");
aNew.updateAll("title = ?", "新闻1");

3.多条件更新

New aNew = new New();
aNew.setTitle("新闻888");
aNew.setDetail("详情888");
aNew.updateAll("title=? and detail=?", "标题2","详情1");
(4). 查询记录

1.查询所有

List<New> newList = LitePal.findAll(New.class);

2.查询id为1

New aNew = LitePal.find(New.class, 1);

3.查找title新闻1的记录,并且以id排序

List<New> aNew = LitePal.where("title = ?", "新闻1").order("id").find(New.class);

4.查找所有id龄小于2

List<New> aNew = LitePal.where("id < ?", "3").find(New.class);

5.多条件查询

int age = 12;//条件一
String sex = "man";条件二
DataSupport.where("age = ? and sex = ?", "" + age, sex).find(Comment.class);//查询表Comment
(5). 原始sql语句操作
 Cursor select_ = LitePal.findBySQL(sql);

findBySQL()方法接收任意个字符串参数,其中第一个参数就是SQL语句,后面的参数都是用于替换SQL语句中的占位符的,用法非常简单。另外,findBySQL()方法返回的是一个Cursor对象,这和原生SQL语句的用法返回的结果也是相同的。

(6). 删除数据库
LitePal.deleteDatabase("")
(7). 创建数据库
LitePal.getDatabase()
(8). 混淆配置
-keep class org.litepal.** {*;
}-keep class * extends org.litepal.crud.LitePalSupport{*;
}
(9). 使用LitePal来完成升级表的操作:

包括新增一张表,新增表中的一个字段,删除表中的一个字段,删除表等,每一次的升级操作litepal.xml文件中数据库的版本号都必须加1.
具体升级操作参考博客:

https://blog.csdn.net/guolin_blog/article/details/39151617

android之LitePal 3.0 的基本使用相关推荐

  1. Android数据库高手秘籍(九),赶快使用LitePal 2.0版本吧

    转载请注明出处:https://blog.csdn.net/guolin_blog/article/details/80586028 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 ...

  2. android litepal可以指定存储目录吗,Android数据库LitePal的基本用法详解

    前言 正好项目用了这种数据存储方式,特地写一篇加深印象,在我看来,LitePal是使用最简单,集成最方便的数据库,没有之一. LitePal 简介 LitePal 是一款开源的 Android 数据库 ...

  3. android中LitePal的使用

    网上有一篇文章写的挺好的,推荐给大家:安卓项目实战之:数据库框架 LitePal 3.0 的使用详解 LitePal是对SQLite数据库操作进行了封装,采用对象映射的方式操作SQLite数据库,简化 ...

  4. ERROR: Failed to resolve: com.android.support:appcompat-v7:29.0.0

    错误内容如下 ERROR: Failed to resolve: com.android.support:appcompat-v7:29.0.0 Show in Project Structure d ...

  5. 解决编译不通过Could not find support-compat.aar (com.android.support:support-compat:26.0.0).

    android 编译报错: > Could not find support-compat.aar (com.android.support:support-compat:26.0.0).Sea ...

  6. A problem occurred starting process 'command '/home/jason/Android/Sdk/build-tools/23.0.3/aapt

    参考:http://www.cnblogs.com/jonzone/p/5246531.html A problem occurred starting process 'command '/home ...

  7. Android 进程常驻(0)----MarsDaemon使用说明

    版权声明:本文为博主原创文章,未经博主允许不得转载. 这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下,clean mast ...

  8. eclipse一直卡住,出现 “android sdk content loader 0%” 卡住的错误分析及解决方法...

    分析:这种问题之前没有遇到过,也不知道什么原因,直接去网上查询,打开www.stackoverflow.com,输入要查询问题的关键词,我们输入 "android sdk content l ...

  9. 【Android】Vitamio 4.0 公测版发布(2013-05-28)

    更新 Vitamio 4.0 正式版已经发布! 这里:[Android]Vitamio 4.0 正式版发布/ Vitamio IOS 测试版发布(2013-07-16) 正文 一.下载地址 Vitam ...

  10. Android Butterknife 8.4.0 使用方法总结

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/52983418 本文出自[赵彦军的博客] 前言 ButterKnife 简介 But ...

最新文章

  1. linux的/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow—关于用户和组的配置文件
  2. SAP RETAIL 寄售模式的公司间STO发货过账后的物料凭证的特殊点
  3. 使用SQL语句UPDATE数据,怎样知道是否UPDATE成功
  4. [原创]教你如何最快写出酷炫的dialog对话框
  5. 两个月计算机考研数学,管综数学考前两个月让你事半功倍的方法
  6. redis分布式缓存php,基于redis分布式缓存实现
  7. c语言’内存清除函数,c语言常用内存处理函数
  8. python中response对象的属性_Django 中的响应对象 Response
  9. 常用插件的封装(轮播图、选项卡、楼梯导航及、拖拽)
  10. android view强制重绘_安卓自定义 view 不能正常重绘
  11. pod BaiduMapKit 报错解决方案
  12. 怎么学计算机制作ppt教程,ppt 制作教程步骤(新手电脑制作 ppt 详细步骤)
  13. 计算机内部用机内码而不是国际码,在计算机内部用机内码而不用国标码表示汉字的原因是()。...
  14. mysql 数据恢复 binlog
  15. 北航计算机考研录取多少人,北航计算机考研近三年报考录取情况
  16. 如何突破四维空间,进入五维空间
  17. win7连接远程服务器特别慢,技术员告诉您win7远程桌面连接速度慢的具体解决法子...
  18. mkv转换mp4格式,mkv格式转mp4
  19. 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
  20. CSS3实现5个常用的网页动画效果

热门文章

  1. 分享6个关于自主学习的思维导图模板
  2. 演化博弈论----gyy参考总结
  3. 开源淘宝客APP源码淘客商城源码uniapp开发模版
  4. 5G+4G聚合路由器
  5. 基于stc15f2k60s2芯片单片机编程(可调时钟)
  6. 在vb连接mysql数据库_VB连接Mysql数据库
  7. 集成学习与随机森林练习题
  8. skype国际版android,Skype国际版
  9. AVG游戏《裂缝》策划案
  10. 联想y7000笔记本触摸板开启快捷键_关闭笔记本触摸板四种方法【图文教程】