一,导包

dependencies {
......
// LitePal的包
compile 'org.litepal.android:core:1.3.1'
......
}

二,创建bean类

public class Person extends DataSupport {

    private int id;
private String name;
private int age; public Person(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}

三,配置litepal.xml文件

在assets文件夹下创建litepal.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo"></dbname>
<version value="1"></version>
<list>
<mapping class="com.example.administrator.litepaldemo.bean.Person"></mapping>
</list>
</litepal>

“dbname ” 标签, 是数据库的名称,自定义。

“mapping” 标签,填写的是需要进行数据库操作的bean类,要写完整的类名。

如果修改bean类的数据结构,只需要修改此处的数据库版本号即可。

四,配置Application类

让自己的Application继承自LitePalApplication;

如果无法实现可以不继承,但是要在Application中添加:

//初始化LitePal数据库
LitePalApplication.initialize(this);

五,Insert

1, 插入一条数据

 Person person = new Person(4, "Cery", 18);
person.save(); // 返回值:是否插入成功
  1. 同时插入多条
List<News> newsList;
...
DataSupport.saveAll(newsList);

六,Delete

1, 清空数据库

DataSupport.deleteAll(News.class);

2,根据ID删除某个一条

DataSupport.delete(News.class, 2);

3, 通过where语句来批量删除数据

DataSupport.deleteAll(News.class, "title = ? and commentcount = ?", "今日iPhone6发布", "0");

七,Update

1, 把news表中id为2的记录的标题改成“今日iPhone6发布”

ContentValues values = new ContentValues();
values.put("title", "今日iPhone6发布");
DataSupport.update(News.class, values, 2);

2,把news表中标题为“今日iPhone6发布”的所有新闻的标题改成“今日iPhone6 Plus发布”

ContentValues values = new ContentValues();
values.put("title", "今日iPhone6 Plus发布");
DataSupport.updateAll(News.class, values, "title = ?", "今日iPhone6发布");

3,把news表中所有新闻的标题都改成“今日iPhone6发布”

ContentValues values = new ContentValues();
values.put("title", "今日iPhone6 Plus发布");
DataSupport.updateAll(News.class, values);

八,Search

//查询第一个
News firstNews = DataSupport.findFirst(News.class);
//查询最后一个
News lastNews = DataSupport.findLast(News.class);
//指定多个id来查询
List<News> newsList = DataSupport.findAll(News.class, 1, 3, 5, 7); //或者
long[] ids = new long[] { 1, 3, 5, 7 };
List<News> newsList = DataSupport.findAll(News.class, ids);
//查询所有
List<News> allNews = DataSupport.findAll(News.class);
//条件查询
List<News> newsList = DataSupport.where("commentcount > ?", "0").find(News.class);
//只要title和content这两列数据的条件查询
List<News> newsList = DataSupport.select("title", "content") .where("commentcount > ?", "0").find(News.class);
//倒叙
List<News> newsList = DataSupport .where("commentcount > ?", "0") .order("publishdate desc").find(News.class);
//只要前十条数据
List<News> newsList = DataSupport .where("commentcount > ?", "0").limit(10).find(News.class);
//从第五个往后的十条,不包括第五条
List<News> newsList = DataSupport.limit(10).offset(5).find(News.class);

查询语句繁杂, 可以参考:http://blog.csdn.net/guolin_blog/article/details/40153833

九,Demo地址

https://github.com/baitutang1221/LitePalDemo

十,参考文章

http://blog.csdn.net/guolin_blog/article/details/38556989

http://blog.csdn.net/guolin_blog/article/details/39345833

http://blog.csdn.net/guolin_blog/article/details/40083685

http://blog.csdn.net/guolin_blog/article/details/40153833

http://blog.csdn.net/u012453607/article/details/51280290

【Android开发】【数据库】LitePal 数据库的使用的更多相关文章

  1. Android开发——使用LitePal开源数据库

    前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal Gi ...

  2. Android开发——使用LitePal开源数据库框架

    前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal ...

  3. Android 开发中 SQLite 数据库的使用

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, ...

  4. Android开发学习——SQLite数据库与单元测试

    SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHelper  public class Myopenhelper extends SQLiteOpenHelp ...

  5. android开发学习 ------- MongoDB数据库简单理解

    首先说一下MongoDB是什么? MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB 是一个基于分布式文件存储的数据库. N ...

  6. Android开发-之SQLite数据库

    之前我们讲了如何将数据存储在文件中,那么除了这种方式呢,就是我们常见的大家都知道的将数据存储在数据库当中了. 将数据存储在数据库中的优势: 1)存储在数据库中的数据更加方便操作,比如增.删.改.查等 ...

  7. Android开发中使用数据库时出现java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.

    最近在开发一个 App 的时候用到了数据库,可是在使用数据库的时候就出现了一些问题,在我查询表中的一些信息时出现了一下问题: Caused by: java.lang.IllegalStateExce ...

  8. Android开发--adb,SQLite数据库运用

    一.玩转adb  adb的全称为Android Debug Bridge,就是起到调试桥的作用.   adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作,如安 ...

  9. 【Android开发】【数据库】Realm For Android

    目录 1.Realm简介 2.环境配置 3.初始化Realm 4.创建实体 5.增 6.删 7.改 8.查 9.异步操作 10.数据库数据更新监听 11.json转对象,插入数据库 12.Demo地址 ...

随机推荐

  1. WPF启动屏幕SplashScreen

    SplashScreen类为WPF应用程序提供启动屏幕. 方法一:设置图片属性 1. 添加启动图片到项目中 2. 设置图片属性的Build Action为SplashScreen 方法二:编写代码 1 ...

  2. HBase面试

    宕机问题: MapReduce读写HBase HBase特点: 1.大:一个表可以有上亿行,上百万列 2.面向列:面向列表(蔟)的存储和权限控制,列(蔟)独立检索 3.稀疏:对于为空(NULL)的列, ...

  3. chrome浏览器添加JSON插件

    1.下载JSON-Handel插件 1) http://jsonhandle.sinaapp.com 点击下载会将json-handle 插件(crx)下载本地 2.打开Chrome浏览器地址栏输入: ...

  4. php 23种设计模型 - 组合模式(合成模式)

    组合模式(Composite) 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这 ...

  5. vue 控制台错误

    控制台显示报错: Uncaught TypeError: WEBPACK_IMPORTED_MODULE_1_vuex.a.store is not a constructor 解决办法: 将new ...

  6. 28 面向对象编程 instanceof 代码 小结 父类引用指向子类对象

    instanceof 代码 // main // Object > Person >Student Object object = new Student(); // 提取公式:XY之间是 ...

  7. 除非Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。

    解决办法: 打开WINDOWS服务管理方法: 进入服务有二种方法: 1.开始-控制面板-管理工具单击,找到"服务"双击打开 在WINDOWS服务管理里 启动 World Wide ...

  8. [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑

    [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑 目录 [源码解析] TensorFlow 分布式环境(3)--- Worker 静态逻辑 1. 继承关系 1.1 角 ...

  9. 6月12日 python学习总结 框架

    1. 登录功能的实现 1. form表单提交数据的注意事项: 1. 是form不是from,必须要有method和action 2. 所有获取用户输入的表单标签要放在form表单里面,表单标签必须要有 ...

  10. python练习册 每天一个小程序 第0000题

    PIL库学习链接:http://blog.csdn.net/column/details/pythonpil.html?&page=1 1 #-*-coding:utf-8-*- 2 __au ...