Android LitePal使用总结
生活随笔
收集整理的這篇文章主要介紹了
Android LitePal使用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- LitePal
- 概述
- 使用
- 初始化數據庫
- 增加數據
- 刪除數據
- 修改數據
- 查詢數據
- 事務支持
- 數據庫升級
- 新增表
- 新增表字段
- 源碼下載
LitePal
概述
- LitePal是一款開源的Android數據庫框架,它采用了對象關系映射(ORM)的模式,并將我們平時開發時最常用到的一些數據庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表、増刪改查的操作。并且LitePal很“輕”,jar包只有100k不到
添加依賴
implementation 'org.litepal.guolindev:core:3.2.3'使用
初始化數據庫
一、在Application里面進行初始化操作
class BaseApp : Application() {override fun onCreate() {super.onCreate()LitePal.initialize(this)} }二、建立ORM對象
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文件,并在其配置數據
<?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>增加數據
增加一條數據
val course = Course("Java", "小紅", 12.04, Date()) course.save()增加多條數據
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)刪除數據
刪除指定id數據
LitePal.delete(Course::class.java, 1)刪除添加數據
LitePal.deleteAll(Course::class.java, "teacher = ? and id > 1", "小花")刪除表內所有數據
LitePal.deleteAll(Course::class.java)修改數據
修改指定id數據
val values = ContentValues().apply {put("teacher", "小白") } LitePal.update(Course::class.java, values, 1)修改指定條件數據
val values = ContentValues().apply {put("teacher", "小👋") } LitePal.updateAll(Course::class.java, values, "name = ? and id > 5", "CSS")查詢數據
簡單查詢
//查詢id為1的數據 val course = LitePal.find(Course::class.java, 1) binding.tvContent.text = course.toString()//查詢表內第一條數據 val course2 = LitePal.findFirst(Course::class.java) binding.tvContent.text = course2.toString()//查詢表內所有數據 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()事務支持
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() }數據庫升級
新增表
一、新建ORM對象
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>注:可以通過調用Connector.getDatabase()觸發數據庫更新
新增表字段
直接修改ORM類,并更新配置文件版本號
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 }源碼下載
總結
以上是生活随笔為你收集整理的Android LitePal使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Drools规则引擎入门小demo
- 下一篇: Android学习笔记:TabHost