一、配置环境
1.添加依赖
dependencies {
compile 'org.litepal.android:core:1.4.1'
}
2.在assets文件夹中添加litepal.xml文件
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="book_store"></dbname>
<version value="1" ></version>
<list>
</list>
</litepal>
3.配置Application
修改AndroidManifest.xml
<application
android:name="org.litepal.LitePalApplication"
...
二、创建数据库
1.定义一个javabean,Book类
package com.momo.litepaltest;
import org.litepal.crud.DataSupport;
/**
* Created by Administrator on 2017/1/18.
*/
public class Book extends DataSupport{
private int id;
private String name;
private String author;
private int pages;
private double price;
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPages(int pages) {
this.pages = pages;
}
public void setPrice(double price) {
this.price = price;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
public int getPages() {
return pages;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", name='" + name + '\'' +
", author='" + author + '\'' +
", pages=" + pages +
", price=" + price +
'}';
}
}
2.在litepal.xml文件中添加mapping标签
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="book_store"></dbname>
<version value="1" ></version>
<list>
<mapping class="com.momo.litepaltest.Book"></mapping>
</list>
</litepal>
3.使用Litepal.getDatabase()即可创建数据库。
4.更新时只需要直接修改Book类,并且修改litepal.xml文件中的version标签,将version加1。如果添加新的数据库,需要在list标签下继续创建一个mapping。
三、插入数据
1将javabean类继承自DataSupport。
public class Book extends DataSupport{
......
}
2.创建Book对象,调用book.save()方法将该条数据存入数据库中。
btn_insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Book book = new Book();
book.setName("Android第一行代码");
book.setAuthor("郭霖");
book.setId(15);
book.setPages(650);
book.setPrice(79.99);
book.save();
Toast.makeText(MainActivity.this, "insert successed!", Toast.LENGTH_SHORT).show();
}
});
四、更新数据
1.调用book.updateAll()方法。
btn_update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Book newBook = new Book();
newBook.setPrice(20.00);
newBook.setPages(200);
newBook.updateAll("id = ?","5");
}
});
2.updateAll()不加参数表示对所有元素执行更新操作。
3.将某列置为默认值
Book book = new Book();
book.setToDefault("pages");
book.updateAll();
将所有书的页数都置为0.
五、删除数据
1.调用DataSupport.delteAll()方法
btn_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DataSupport.deleteAll(Book.class,"id = ?" , "4");
Toast.makeText(MainActivity.this, "delete success", Toast.LENGTH_SHORT).show();
}
});
2.deleteAll()不加参数表示删除所有元素
六、查询数据
1.查询所有记录DataSupport.findAll(Book.class);
btn_query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
StringBuilder builder = new StringBuilder();
List<Book> bookList = DataSupport.findAll(Book.class);
for(Book book: bookList){
builder.append(book.toString() + "\n");
}
tv_data.setText(builder.toString());
Toast.makeText(MainActivity.this, "query result", Toast.LENGTH_SHORT).show();
}
});
2.查询第一条记录
Book firstBool = DataSupport.findFirst(Book.class);
3.查找最后一条记录
Book lastBook = DataSupport.findLast(Book.class);
4.select查找固定列
List<Book> books = DataSupport.select("name","author").find(Book.class);
5.where用于条件查询
List<Book> books = DataSupport.where("pages > ?" , "400").find(Book.class);
6.order排序(desc从大到小,asc从小到大)
List<Book> books = DataSupport.order("price desc").find(Book.class);
7.limit限定查询记录数目
List<Book> books = DataSupport.limit(3).find(Book.class);
8.offset设置偏移量
List<Book> books = DataSupport.limit(3).offset(1).find(Book.class);
9.组合查询
List<Book> books = DataSupport.limit(3)
.offset(1)
.select("name","author")
.order("price desc")
.find(Book.class);