Android LitePal使用总结
生活随笔
收集整理的這篇文章主要介紹了
Android LitePal使用总结
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- LitePal
- 概述
- 使用
- 初始化數(shù)據(jù)庫(kù)
- 增加數(shù)據(jù)
- 刪除數(shù)據(jù)
- 修改數(shù)據(jù)
- 查詢數(shù)據(jù)
- 事務(wù)支持
- 數(shù)據(jù)庫(kù)升級(jí)
- 新增表
- 新增表字段
- 源碼下載
LitePal
概述
- LitePal是一款開(kāi)源的Android數(shù)據(jù)庫(kù)框架,它采用了對(duì)象關(guān)系映射(ORM)的模式,并將我們平時(shí)開(kāi)發(fā)時(shí)最常用到的一些數(shù)據(jù)庫(kù)功能進(jìn)行了封裝,使得不用編寫(xiě)一行SQL語(yǔ)句就可以完成各種建表、増刪改查的操作。并且LitePal很“輕”,jar包只有100k不到
添加依賴
implementation 'org.litepal.guolindev:core:3.2.3'使用
初始化數(shù)據(jù)庫(kù)
一、在Application里面進(jìn)行初始化操作
class BaseApp : Application() {override fun onCreate() {super.onCreate()LitePal.initialize(this)} }二、建立ORM對(duì)象
data class Course(val name: String,val teacher: String,val price: Double,val date: Date ) : LitePalSupport() {val id: Long = 0override fun toString(): String {return "Course(id=$id, name=$name, teacher=$teacher, price=$price, date=$date)"} }data class Teacher(val name: String,val age: Int,val desc: String ) : LitePalSupport() {val id: Long = 0 }三、配置文件
在assets目錄下新建litepal.xml文件,并在其配置數(shù)據(jù)
<?xml version="1.0" encoding="utf-8"?> <litepal><dbname value="mylitepal" /><version value="1" /><list><mapping class="com.example.myapplication.litepal.Course" /><mapping class="com.example.myapplication.litepal.Teacher" /></list> </litepal>增加數(shù)據(jù)
增加一條數(shù)據(jù)
val course = Course("Java", "小紅", 12.04, Date()) course.save()增加多條數(shù)據(jù)
val courseList = arrayListOf<Course>() courseList.add(Course("JavaScript", "小花", 23.06, Date())) courseList.add(Course("HTML", "小白", 13.06, Date())) courseList.add(Course("CSS", "小黑", 33.06, Date())) LitePal.saveAll(courseList)刪除數(shù)據(jù)
刪除指定id數(shù)據(jù)
LitePal.delete(Course::class.java, 1)刪除添加數(shù)據(jù)
LitePal.deleteAll(Course::class.java, "teacher = ? and id > 1", "小花")刪除表內(nèi)所有數(shù)據(jù)
LitePal.deleteAll(Course::class.java)修改數(shù)據(jù)
修改指定id數(shù)據(jù)
val values = ContentValues().apply {put("teacher", "小白") } LitePal.update(Course::class.java, values, 1)修改指定條件數(shù)據(jù)
val values = ContentValues().apply {put("teacher", "小👋") } LitePal.updateAll(Course::class.java, values, "name = ? and id > 5", "CSS")查詢數(shù)據(jù)
簡(jiǎn)單查詢
//查詢id為1的數(shù)據(jù) val course = LitePal.find(Course::class.java, 1) binding.tvContent.text = course.toString()//查詢表內(nèi)第一條數(shù)據(jù) val course2 = LitePal.findFirst(Course::class.java) binding.tvContent.text = course2.toString()//查詢表內(nèi)所有數(shù)據(jù) val courseList = LitePal.findAll(Course::class.java) binding.tvContent.text = courseList.toString()條件查詢
val courseList = LitePal.where("id > ?", "5") .order("price desc") .find(Course::class.java) binding.tvContent.text = courseList.toString()事務(wù)支持
try {LitePal.beginTransaction()val course = LitePal.find(Course::class.java, 2)val values = ContentValues().apply {put("price", 100.01)}LitePal.update(Course::class.java, values, course.id)LitePal.setTransactionSuccessful() } catch (e: Exception) {e.printStackTrace() } finally {LitePal.endTransaction() }數(shù)據(jù)庫(kù)升級(jí)
新增表
一、新建ORM對(duì)象
data class Comment(val content: String) : LitePalSupport() {val id: Long = 0 }二、添加配置
<?xml version="1.0" encoding="utf-8"?> <litepal><dbname value="mylitepal" /><version value="2" /><list><mapping class="com.example.myapplication.litepal.Course" /><mapping class="com.example.myapplication.litepal.Teacher" /><mapping class="com.example.myapplication.litepal.Comment" /></list> </litepal>注:可以通過(guò)調(diào)用Connector.getDatabase()觸發(fā)數(shù)據(jù)庫(kù)更新
新增表字段
直接修改ORM類,并更新配置文件版本號(hào)
data class Course(val name: String,val teacher: String,val price: Double,val date: Date,@Column(defaultValue = "很好") val comment: String //新增字段 ) : LitePalSupport() {val id: Long = 0 }源碼下載
總結(jié)
以上是生活随笔為你收集整理的Android LitePal使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Drools规则引擎入门小demo
- 下一篇: Android学习笔记:TabHost