LitePal官网
1、导入依赖
//LitePal数据库 Kotlin版--java版看官网
implementation 'org.litepal.android:kotlin:3.0.0'
2、创建xml数据库配置
创建基类=数据库表名+字段名
litepal.xml数据库配置
3、在Application中初始化LitePal
LitePal.initialize(this) //初始化数据库
4、操作数据库
增:
var userBean = UserBean("张三")
val save = userBean.save()
删:
val deleteAll = LitePal.deleteAll(UserBean::class.java, "userName = ?", "李四")
改:
val contentValues = ContentValues()
contentValues.put("userName","修改的新内容")
val updateAll = LitePal.updateAll(UserBean::class.java, contentValues, "userName=?", "老内容")
查:
LitePal.where("userName like ?","%${et_main.text}%").limit(3).findAsync<UserBean>().listen {
var stringBuffer = StringBuffer()
it.forEach {
stringBuffer.append("${it.toString()}\n")
}
tv_main.text = stringBuffer
}
5、更新数据库
6、贴下代码-方便自己复制
app/src/main/assets/litepal.xml
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!--设定数据库的名字-->
<dbname value="LitePalDemo"></dbname>
<!--设定数据库的版本号[需要纯数字]-->
<version value="1"></version>
<!--用于设定所有的映射模型-->
<list>
<mapping class="com.zxy.litepaldemo.UserBean"/>
</list>
</litepal>
UserBean.kt基类
import org.litepal.crud.LitePalSupport
/**
* Created by zxy on 2019/9/24-13:36
* Class functions
* ******************************************
* *
* ******************************************
*/
data class UserBean(val userName: String) : LitePalSupport()
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
/**
* 增加
* @param view View
*/
fun onAdd(view: View) {
var userBean = UserBean("张三")
val save = userBean.save()
}
/**
* 删除
* @param view View
*/
fun onDelete(view: View) {
val deleteAll = LitePal.deleteAll(UserBean::class.java, "userName = ?", "李四")
}
/**
* 修改
* @param view View
*/
fun onUpdata(view: View) {
val contentValues = ContentValues()
contentValues.put("userName","修改的新内容")
val updateAll = LitePal.updateAll(UserBean::class.java, contentValues, "userName=?", "老内容")
}
/**
* 查询
* @param view View
*/
fun onSelect(view: View) {
LitePal.where("userName like ?","%${et_main.text}%").limit(3).findAsync<UserBean>().listen {
var stringBuffer = StringBuffer()
it.forEach {
stringBuffer.append("${it.toString()}\n")
}
tv_main.text = stringBuffer
}
}
}