官方Github地址:
https://github.com/LitePalFramework/LitePal
本文章开源Demo地址:
https://github.com/EverZc/SQLitePal
使用:
首先配置AndroidManifest.xml
android:name="org.litepal.LitePalApplication"
assets文件夹中新建XML文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="1"></version>
<list>
<!--映射表-->
<mapping class="com.zc.myapplication.BookTable"></mapping>
</list>
</litepal>
创建表
Connector.getDatabase();
升级数据库的时候 只需要在Util中直接添加想要的列就可以. LitePal会自行保存之前的数据的.
添加数据
首先让表继承 DataSupport
Book book=new Book();
book.setName("西游记");
book.setAuthor("吴承恩");
book.setPages(456);
book.setPrice(16.96);
book.setPress("未知");
//调用此方法完成添加数据操作
book.save();
更新数据
Book book=new Book();
book.setPrice(19.666);
book.setPress("中华出版社");
//约束条件 类似于where
book.updateAll("name=? and author=?","钢铁是怎样练成的","奥斯托洛夫斯基");
删除数据
//删除有约束条件的数据
DataSupport.deleteAll(Book.class,"price<?","18");
//删除ID为2的数据
DataSupport.delete(Book.class, 2);
//删除整个表的数据
DataSupport.delete(Book.class);
查询数据
List<Book> books=DataSupport.findAll(Book.class);
for (Book book:books){
Log.d("------",book.getName());
Log.d("------",book.getAuthor());
Log.d("------",book.getPress());
Log.d("------", String.valueOf(book.getPrice()));
Log.d("------", String.valueOf(book.getPages()));
}
//查询表第一个数据
Book first=DataSupport.findFirst(Book.class);
//查询表最后一个数据
Book last=DataSupport.findLast(Book.class);
Log.e("------", first.toString());
Log.e("------", last.toString());
//查询哪几列的数据,对应SQL关键字select
List<Book> books=DataSupport.select("name","author").find(Book.class);
//where方法用于指定查询的约束条件 对应SQL关键字where
List<Book> books1=DataSupport.where("pages>?","400").find(Book.class);
//order 用于指定结果的排序方式 desc表示降序 asc或者默认表示升序
List<Book> books2=DataSupport.order("price desc").find(Book.class);
//limit 方法用于指定查询结果的数量 例如如下查询3条
List<Book> books3=DataSupport.limit(3).find(Book.class);
//offset()用于指定查询结果的偏移量,比如查询第2 3 4条数据
List<Book> books4=DataSupport.limit(3).offset(1).find(Book.class);
//任意组合一个
List<Book> books5=DataSupport.select("name","pages")
.where("pages>?","400")
.order("pages")
.limit(10)
.offset(10)
.find(Book.class);