Litepal采用的是对象关系映射(ORM)模式

 
LitePal的配置工作。
1.添加依赖 
compile 'org.litepal.android:core:1.3.2'

2.配置litepal.xml文件  在src/main创建assets目录 然后在目录下创建一个litepal.xml文件

<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore"></dbname> <version value=""></version> <list></list> <!--dbname标签用于指定数据库名
version用于指定数据库版本号
list标签用于指定所有的映射模型-->
</litepal>

3.配置LitepalApplication 修改AndroidManifest中的代码

<application
android:name="org.litepal.LitePalApplication"

创建和升级数据库

创建:

1.写一个java bean
2.将写的java bean 的类添加到影射模型列表中
修改litepal.xml里的list标签
<list>
<mapping class="co.example.leo.litepal.Book"></mapping>
<!--使用mapping标签声明我们要配置的映射模型类,一定要使用完整的类名-->
</list>
3.调用创建数据库
Connector.getDatabase();    

升级:

如果想要添加一个列 只需直接修改Book类中代码 添加一个字段即可
如果需要添加一个表 只需新建一个java bean 然后将版本号加1 并将类添加到映射模型列表中
 
Litepal 添加数据
Litepal进行表管理的操作时不需要模型类有任何的继承结构,但进行CRUD的时候,必须要继承自DataSupport类才可以
1、让模型类继承自DataSupport 
2. 设置数据 调用save方法
Button addData = (Button)findViewById(R.id.add_data);
addData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Book book = new Book();
book.setName("The Da Vinci Code");
book.setAuthor("Dan Brown");
book.setPages();
book.setPrice(16.96);
book.setPress("Unknow");
book.save();
}
});

Litepal 更新数据

最简单的一种更新方式就是对已经存储的对象重新设值 然后重新调用save()方法即可
已存储的对象: 对象是否以存储就是根据调用model.isSaved()方法的结果来进行判断即可,返回true表示已存储,false表示未存储 
一种情况是已经调用过modle.save()方法去添加数据了
另一种情况是model对象是通过Litepal提供的查询API查出来的
这两种情况都会返回true
 Button updateData = (Button)findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Book book = new Book();
book.setName("The Da Vinci Code");
book.setAuthor("Dan Brown");
book.setPages();
book.setPrice(16.96);
book.save();
book.setPages();
book.save();
}
});
显示添加了一条Book数据 
然后调用setPages对书的页数进行了修改,之后再次调用save方法。
第二种方式
public void onClick(View v) {
Book book = new Book();
book.setPages();
book.updateAll("name = ?","The Da Vinci Code");
}
 
设置默认值
Book book = new Book()
book.setDefault("pages");
book.updateAll();

 

删除数据

    //第一个参数用于指定删除那张表的数据 后面的参数用于指定约束条件
DataSupport.deleteAll(Book.class,"price < ?","");

查询数据

List<Book> books = DataSupport.findAll(Book.class);
for(Book book : books){ }

Litepal的其他查询API

 

LitePal的更多相关文章

  1. Android ORM -- Litepal(1)

    ORM,即Object Relation Mapping,对象关系映射,实现了程序里面的类和数据库里面的数据之间的对应关系,对数据库的操作可以通过对类的操作去实现,不用再写SQL语句,从而提高了开发效 ...

  2. Android LitePal 神一般的数据库框架 超级好用

    参考: Android数据库高手秘籍(一)--SQLite命令 Android数据库高手秘籍(二)--创建表和LitePal的基本用法 Android数据库高手秘籍(三)--使用LitePal升级表 ...

  3. android项目中使用开源数据库litepal

    下载地址 https://github.com/LitePalFramework/LitePal 参考文档 http://blog.csdn.net/guolin_blog/article/detai ...

  4. LitePal + Gson + Volley的ORM框架尝试方案

    为了紧跟技术潮流,目前的项目开始采用ORM的思想进行重新设计. 数据库采用轻量级ORM框架LitePal,Json解析采用Gson,网络框架采用Volley. 如果只是单纯的将这些第三方框架引进来,事 ...

  5. litepal的jar包

    转自http://blog.csdn.net/luohai859/article/details/39292607 LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的 ...

  6. 数据库框架 Litepal

    1.导包 dependencies {   compile 'org.litepal.android:core:1.4.1' } 2.在asstes中建立litepal.xml文件 <?xml ...

  7. Android最方便的数据库--LitePal

    郭最近看到神分析LitePal相框,我感觉很强烈,尝试了一下,真的好,我不知道,如果你不习惯学习,那么各不相同,我觉得很合适 看完之后,思想,对于我来说,,实体到set颂值,如果数据非常多,那么你可以 ...

  8. Android数据库高手秘籍(五)——LitePal的存储操作

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39345833 经过前面几篇文章的学习,我们已经把LitePal的表管理模块的功能都 ...

  9. Android数据库专家秘籍(七)经验LitePal查询艺术

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40153833 经过了多篇文章的学习,我们已经把LitePal中的绝大部分内容都掌握 ...

  10. Android数据库高手秘籍(六)——LitePal的改动和删除操作

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40083685 在上一篇文章中,我们学会了使用LitePal进行存储数据的功能.确实 ...

随机推荐

  1. 安装 texlive

    多系统使用texlive 中文latex 用xelatex 编译 只需要加入宏包 \usepackage[UTF8]{ctex} Rmarkdown 配置模版 $ cat _output.yaml b ...

  2. 设置R更新源

    命令行设置R更新源 创建文件 R.home()/etc/Rprofile.site 设置更新源 local({r <- getOption("repos") r[" ...

  3. UML-各阶段如何编写用例

    1.前文回顾 用例的根本价值:发现谁是关键参与者,他要实现什么目标? 需求分类,见<进化式需求>:制品,见<初始不是需求阶段>中的表4-1 2.各阶段编写何种用例,均针对下图展 ...

  4. matplotlib学习——设置线条颜色及形状

    在图形表示中,不同的画布或画布中不同的函数,我们常常要用不同的形状或颜色来区分开,这里小编向大家介绍这些参数的表示方法: 一.控制颜色 b--blue             c--cyan(青色)  ...

  5. 吴裕雄--天生自然C语言开发:数组

    ] = {1000.0, 2.0, 3.4, 7.0, 50.0}; ]; #include <stdio.h> int main () { ]; /* n 是一个包含 10 个整数的数组 ...

  6. F. Wi-Fi(线段树实现dp)

    题:http://codeforces.com/contest/1216/problem/F dp[i][0]:表示第i个位置不装的最小代价 dp[i][1]:表示第i个位置装的最小代价 T1的线段树 ...

  7. Python实现求1-1000以内的素数

    def func(): for i in range(2,1000): # count表示被整除的次数 count = 0 for j in range(1,i+1): if i%j==0: coun ...

  8. 4)date中的Ymd格式问题

    以下是详细的参数: format 字符 说明 返回值例子日 --- ---d 月份中的第几天,有前导零的 2 位数字 01 到 31D 星期中的第几天,文本表示,3 个字母 Mon 到 Sunj 月份 ...

  9. 系统学习javaweb重点难点1--如何区分<input/>框里的三种常用属性:type属性 name属性 和 value属性

    感想:这是我系统学习javaweb的时候感觉这个是一个初学者十分容易搞混的点 学习笔记: 首先,是type属性. 表单输入项标签之一,用户可以在该标签上通过填写和选择进行数据输入. type属性设置该 ...

  10. MongoDB的图形化连接工具MongoDB VUE

    MongoDB的图形化连接工具MongoDB VUE 类似mysql的navicat.