【Android开发】【数据库】LitePal 数据库的使用
一,导包
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(); // 返回值:是否插入成功
- 同时插入多条
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 数据库的使用的更多相关文章
- Android开发——使用LitePal开源数据库
前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal Gi ...
- Android开发——使用LitePal开源数据库框架
前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal ...
- Android 开发中 SQLite 数据库的使用
SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, ...
- Android开发学习——SQLite数据库与单元测试
SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHelper public class Myopenhelper extends SQLiteOpenHelp ...
- android开发学习 ------- MongoDB数据库简单理解
首先说一下MongoDB是什么? MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB 是一个基于分布式文件存储的数据库. N ...
- Android开发-之SQLite数据库
之前我们讲了如何将数据存储在文件中,那么除了这种方式呢,就是我们常见的大家都知道的将数据存储在数据库当中了. 将数据存储在数据库中的优势: 1)存储在数据库中的数据更加方便操作,比如增.删.改.查等 ...
- Android开发中使用数据库时出现java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed.
最近在开发一个 App 的时候用到了数据库,可是在使用数据库的时候就出现了一些问题,在我查询表中的一些信息时出现了一下问题: Caused by: java.lang.IllegalStateExce ...
- Android开发--adb,SQLite数据库运用
一.玩转adb adb的全称为Android Debug Bridge,就是起到调试桥的作用. adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态.还可以进行很多手机操作,如安 ...
- 【Android开发】【数据库】Realm For Android
目录 1.Realm简介 2.环境配置 3.初始化Realm 4.创建实体 5.增 6.删 7.改 8.查 9.异步操作 10.数据库数据更新监听 11.json转对象,插入数据库 12.Demo地址 ...
随机推荐
- [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表
[源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- Local hash表 目录 [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器 --(9)--- ...
- JavaScript 数组方法filter和reduce
前言 在ES6新增的数组方法中,包含了多个遍历方法,其中包含了用于筛选的filter和reduce filter 主要用于筛选数组的filter方法,在使用中,不会改变原数组,同时会将符合筛选条件的元 ...
- Linux常用文件管理命令详解
cat cat命令用于连接文件并打印到标准输出设备上. 命令语法:cat [参数] [文件名] 参数说明: 参数 说明 -n 由1开始对所有输出的行数进行编号. -b 由1开始对所有输出的行数进行编号 ...
- NSView subview blocking drag/drop event
原文链接 近期在Mac项目中有一个处理鼠标拖拽事件的需求, 大致处理流程是这样的: 从 NSView 继承得到一个子类 覆盖处理拖拽事件相关方法 注册拖拽事件 开始的时候一切都很正常,直到某次发现拖拽 ...
- os模块——关于在程序框中如何进行文件的查找和建立新的文件夹
- .NET 7 预览版2 的亮点之 NativeAOT 正式合并入 .NET 主线
.NET 中备受追捧和期待已久的功能NativeAOT终于出现在本周的.NET 7 预览版2中,该项目的工作仍在继续,该版本将 NativeAOT 从实验性的 dotnet/runtimelab re ...
- 【基础】工作中常用的linux命令,经常会被面试官问到
前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...
- 分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践
确定应用程序类型 在 Citus 集群上运行高效查询要求数据在机器之间正确分布.这因应用程序类型及其查询模式而异. 大致上有两种应用程序在 Citus 上运行良好.数据建模的第一步是确定哪些应用程序类 ...
- Django基础必会
Django基础必会 Django项目目录 mysite -mysite -__init__.py -urls.py(函数和函数的对应关系) -settings.py(Django项目的配置信息) - ...
- 造成panic_oom问题的测试代码
写一个内核模块,来构造内核模块出现panic oom,主要采用vmalloc函数: #include <linux/module.h> #include <linux/mm.h> ...