开源库LitePal的用法
来源:互联网 发布:淘宝散片cpu可靠吗 编辑:程序博客网 时间:2024/05/17 23:07
前言
LitePal是一个开源的Android库,允许开发人员使用SQLite数据库非常容易。您可以完成大多数数据库操作,甚至不需要编写SQL语句,包括创建或升级表,压缩操作,聚合函数等。LitePal的设置也很简单,您可以将它集成到您的项目中少于5分钟。
内容
LitePal的快速配置
1.引入Jar包或源码
使用Android Studio在项目的build.gradle中添加下面依赖:
dependencies { compile 'org.litepal.android:core:1.3.2'}
使用Eclipse到这里下载好了jar包之后,把它复制到项目的libs目录中就算是引入成功了。
2.配置litepal.xml
在项目的assets目录下面新建一个litepal.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="cool_weather" /> <version value="1" /> <list> <mapping class="com.example.yuxuehai.coolweather.bean.Province" /> <mapping class="com.example.yuxuehai.coolweather.bean.City" /> <mapping class="com.example.yuxuehai.coolweather.bean.County" /> </list></litepal>
其中:
- 是数据库的名字
- 是数据库的版本号
- 是数据库的映射模型(数据库表)
- 是数据库的映射模型的地址(数据库表结构)
3. 配置LitePalApplication
在AndroidManifest.xml中配置LitePalApplication,如下:
<application android:name="org.litepal.LitePalApplication" ... > ... ...</application>
如果是已经有自己的application,则可以继承LitePalApplication或者在代码中加入如下代码:
public class MyApplication extends LitePalApplication { ... }public class MyApplication extends AnotherApplication{ @Override public void onCreate() { super.onCreate(); LitePal.initialize(this); } ... }
LitePal的建表
根据对象关系映射模式的理念,每一张表都应该对应一个模型(Model),建表先要新建一个模型类,新建一个Province类,如下:
public class Province extends DataSupport { private int id; private String provinceName; private int provinceCode; public int getProvinceCode() { return provinceCode; } public void setProvinceCode(int provinceCode) { this.provinceCode = provinceCode; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getProvinceName() { return provinceName; } public void setProvinceName(String provinceName) { this.provinceName = provinceName; }}
LitePal的映射规则是非常轻量级的,不像一些其它的数据库框架,需要为每个模型类单独配置一个映射关系的XML,LitePal的所有映射都是自动完成的。根据LitePal的数据类型支持,可以进行对象关系映射的数据类型一共有8种,int、short、long、float、double、boolean、String和Date。只要是声明成这8种数据类型的字段都会被自动映射到数据库表中,并不需要进行任何额外的配置。
注意:只有private修饰的字段才会被映射到数据库表中,即如果有某一个字段不想映射的话,就设置为public、protected或者default修饰符就可以了。
建立好Model后,我们就把他配置到映射列表中,即编辑assest目录下的litepal.xml文件,在标签中加入DEST类的声明,这里要注意,要类的完整类名。
<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="cool_weather" /> <version value="1" /> <list> <mapping class="com.example.yuxuehai.coolweather.bean.Province" /> </list></litepal>
到这里,就完成了LitePal数据库的配置。
LitePal的升级表
1.添加新表
首先创建一个新的模型类,然后把它设置到litepal.xml中,如下:
<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="cool_weather" /> <version value="1" /> <list> <mapping class="com.example.yuxuehai.coolweather.bean.Province" /> <mapping class="com.example.yuxuehai.coolweather.bean.City" /> <mapping class="com.example.yuxuehai.coolweather.bean.County" /> </list></litepal>
然后,把litepal.xml中的version的值加一即可,如下:
<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="cool_weather" /> <version value="2" /> <list> <mapping class="com.example.yuxuehai.coolweather.bean.Province" /> <mapping class="com.example.yuxuehai.coolweather.bean.City" /> <mapping class="com.example.yuxuehai.coolweather.bean.County" /> </list></litepal>
2.旧表添加新列
首先在需要升级的模型类中添加新的private修饰的字段,然后再把litepal.xml中的version的值加一即可,这里就不展示代码了,读者可以自己去体验。
LitePal的操作
LitePal要存储数据,首先模型类要继承DataSupport,即:
public class Province extends DataSupport { ... ...}
继承了DataSupport类之后,这些实体类就拥有了进行CRUD操作的能力。
1.存储操作
创建对象,为对象的属性进行赋值,最后调用save()方法即可存储,如下:
Province province = new Province();province.setProvinceName(provinceObject.getString("name"));province.setProvinceCode(provinceObject.getInt("id"));province.save();
更好的是,save()方法是有返回值的,读者可以根据自己需要对其进行判断后做出一些操作:
if (mDest.save()) { Toast.makeText(context, "存储成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "存储失败", Toast.LENGTH_SHORT).show(); }
2.修改操作
如果想把Province表中id为1的provinceCode改为”1”,可以这样写:
ContentValues values = new ContentValues(); values.put("provinceCode", "1"); DataSupport.update(Pronvice.class, values, 1); //或者用下面这种方法Province updateNews = new Province(); updateNews.setProvinceCode(1) updateNews.update(1);
如果想把Province表中所有id为”1”的改为”2”可以这样写:
ContentValues values = new ContentValues(); values.put("provinceCode", "2"); DataSupport.updateAll(DEST.class, values, "provinceCode = ?", "1"); //或者用下面这种方法Province updateNews = new Province(); updateNews.setProvinceCode("2"); updateNews.updateAll("setProvinceCode = ?", "1");
3.LitePal的删除操作
比如说我们想删除Province表中id为2的记录,就可以这样写:
DataSupport.delete(Province.class, 2);
想把Province表中id为“1”的所有数据删除,就可以这样写:
DataSupport.deleteAll(Province.class, "destId = ? ", "1");
想把Province表中所有数据删除,就可以这样写:
DataSupport.deleteAll(Province.class);
LitePal的查询操作
查询Province表中id为1的这条记录,使用LitePal就可以这样写:
Province mProvince = DataSupport.find(Province.class, 1);
想要获取Province表中的第一条数据,只需要这样写:
Province mProvince = DataSupport.findFirst(Province.class);
想要获取Province表中的最后一条数据,只需要这样写:
Province mProvince = DataSupport.findLast(Province.class);
查询Province表中id为1,2,3的这条记录,使用LitePal就可以这样写:
List<Province> mProvince = DataSupport.findAll(Province.class,1,2,3);
查询所有数据,只需要这样写:
List<Province> mProvince = DataSupport.findAll(Province.class);
笔者只是对一些简单的操作进行介绍,如想学习更多操作请浏览guolin郭霖老师的博客点这里
- 开源库LitePal的用法
- LitePal的基本用法
- LitePal的基本用法
- LitePal的基本用法
- LitePal的基本用法
- LitePal的基础用法
- LitePal的基本用法_02
- 【android LitePal框架的用法】
- litepal开源库的使用
- 安卓好用的数据库LitePal的基本用法
- 创建表和LitePal的基本用法
- 创建表和LitePal的基本用法
- LitePal基本用法_01
- LitePal基本用法
- LitePal简单用法
- 开源库LitePal
- Litepal的用法以及dbname is empty的解决
- Android创建数据表和LitePal的基本用法
- java基础知识0720
- GitHub转华为软件开发云详细教程
- 陆奇最新内部演讲:百度需要的AI工程师,要满足这五大要求
- 众数问题 oj17
- 指针和链表训练题目
- 开源库LitePal的用法
- 627. Swap Salary--UPDATE and CASE...WHEN
- HDU4912 Paths on the tree(数据结构,lca,贪心)
- 如何使用前置声明取代包括头文件
- 那些创意十足的东东们
- Netty之握手和安全认证
- 用于批量对半裁剪jpg格式照片
- 写在毕业一个月之际
- codeblocks安装教程和文件的简单创建方法