LitePal 是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将一些常用的数据库功能进行封装。
https://github.com/LitePalFramework/LitePal
LitePal的配置
在app/build.gradle文件中加入
compile 'org.litepal.android:core:1.6.0'
修改AndroidManifest.xml的代码,在application标签中加入
android:name="org.litepal.LitePalApplication"
创建数据库
定义一个实体类
import org.litepal.crud.DataSupport;
/**
* Created by hya on 2017/10/17.
*/
public class Book extends DataSupport {
private int id;
private String name;
private String author;
private double price;
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 String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
在/app/src/main目录下创建一个assets目录,在assets目录下新建文件litepal.xml。将Book类添加到映射模型列表中。
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="1"></version>
<list>
<mapping class="com.hya.text.Book"></mapping>
<!--在此处添加要映射的类-->
</list>
</litepal>
使用LitePal对数据库进行操作
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Button
import org.litepal.LitePal
import org.litepal.crud.DataSupport
class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val add = findViewById<Button>(R.id.btn_add)
add.setOnClickListener(this)
val create = findViewById<Button>(R.id.btn_create)
create.setOnClickListener(this)
val remove = findViewById<Button>(R.id.btn_remove)
remove.setOnClickListener(this)
val update = findViewById<Button>(R.id.btn_update)
update.setOnClickListener(this)
val query = findViewById<Button>(R.id.btn_query)
query.setOnClickListener(this)
}
override fun onClick(p0: View?) {
when (p0?.id) {
R.id.btn_create -> {
LitePal.getDatabase()
Log.d("create","success")
}
R.id.btn_add -> {
val book = Book()
book.name = "The Da Vinci Code"
book.author = "Dan Brown"
book.price = 16.22
book.save()
val book1 = Book()
book1.name = "The Lost Symbol"
book1.author = "Dan Brown"
book1.price = 26.52
book1.save()
val book2 = Book()
book2.name = "Thinking in Java"
book2.author = "Bruce Eckel"
book2.price = 44.72
book2.save()
}
R.id.btn_update -> {
val book = Book()
book.price = 30.1
book.updateAll("name = ?","The Da Vinci Code")
}
R.id.btn_remove -> {
DataSupport.deleteAll("Book","price < ?","30")
}
R.id.btn_query -> {
val books:List<Book> = DataSupport.findAll(Book::class.java);
for (book in books){
Log.d("MainAvtivity","name = ${book.name} ,author = ${book.author} , price = ${book.price}")
}
}
}
}
}
运行效果图
点击按钮add添加数据
点击update修改数据
点击remove删除数据