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. Linux mint OS

    Linux mint OS Ctrl+Alt left or right : # Change workspace Goldendict + Goldendict-wordnet # Dict for ...

  2. python机器学习(2:KNN算法)

    1.KNN 简介:knn算法是监督学习中分类方法的一种.它又被叫k近邻算法,是一个概念极其简单而分类效果又很优秀的分类算法. 核心思想:在训练集中选出离输入的数据最近的k个数据,根据这k个数据的类别判 ...

  3. windows远程无法粘贴复制

    解决办法: 1.  打开电脑的任务管理器,找到 rdpclip.exe 进程,如果能找到进程,就右键结束进程,如果没有,那就正好,不用结束了,说明没启动,正常来说,都会存在的,但是在我的win10就开 ...

  4. Java面试宝典2017

    JAVA面试.笔试题(2017版)                 欲想成功,必须用功!   目录 一.                  HTML&CSS部分................ ...

  5. QT程序中显示中文字体解决办法

    Qt4.7.1 默认没有中文字体库,迅为给用户提供“文泉驿”字体和配置方法.本节需要的 文件在网盘: 用一个简单测试程序说明“文泉驿”字体的配置方法. 在 Qt Creater 新建工程“nihao” ...

  6. springboot FreeMarker template error

    注释掉<#list>xxx</#list> 现在运行就不报错了

  7. 0x06 - Nginx 负载均衡会话保持

    Nginx 负载均衡会话保持 背景 负载均衡时,如果APP需要保持特定状态的时候,就要保证同一用户的 session 会被分配到同一台服务器上. 实现方案 使用cookie 将用户的 session ...

  8. PAT甲级——1036 Boys vs Girls

    1036 Boys vs Girls This time you are asked to tell the difference between the lowest grade of all th ...

  9. Exchange Online合规性管理

    一.就地电子数据展示和保留 就地电子数据展示允许组织内的授权合规性管理员搜索整个Exchange组织的邮箱数据.预览搜索结果,并可以复制到发现邮箱将其导出到以pst为拓展名的文件. 就地电子数据展示使 ...

  10. linux awk详解

    awk: awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑, awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开 ...