当前位置:网站首页>LitePal操作数据库
LitePal操作数据库
2022-08-11 02:03:00 【高朵】
LitePal操作数据库
一、 LitePal简介
LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式。将数据库功能进行了封装,可以不用编写一行SQL语句就能完成各种建表和增删改查的操作。LitePal的项目主页面地址:https://github.com/guolindev/LitePal
二、 配置LitePal
1. 在app/build.gradle文件的dependencies闭包中添加包依赖
implementation 'org.litepal.guolindev:core:3.2.3
2. 在app/src/main目录下新建assets目录,新建litepal.xml
<?xml version="1.0" encoding="UTF-8" ?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="1"></version>
<list>
<mapping class="com.examlple.app.Book"></mapping>
</list>
</litepal>
3. 在AndroidManifest.xml添加android:name
<application
android:name="org.litepal.LitePalApplication"
...
</activity>
</application>
4. 上面爆红的话,在setting.gradle添加如图所示
三、创建和升级数据库
1. 定义一个Book类,并构造get和set方法
2. 在litepal.xml中标签中的一定要使用完整的类名
3. 修改MainActivity中的代码
Button createDatabase = (Button) findViewById(R.id.create_database);
createDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Connector.getDatabase();
}
});
四、添加数据
LitePal进行表管理操作时不需要模型类有任何的继承结构,但是进行CRUD操作时就不行了,必须要继承LitepalSupportt类才行。
(1) 将Books继承LitepalSupport类
(2) 修改代码
Button addData = (Button) findViewById(R.id.add_data);
addData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Books books =new Books();
books.setName("java");
books.setAuthor("张华");
books.setPages(200);
books.setPrice(23.43);
books.save();
}
});
五、修改数据
Button updateData = (Button)findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Books books = new Books();
books.setPrice(14.95);
books.setName("李四");
books.updateAll("name = ? and author = ?","java","张华");
}
});
六、删除数据
Button deleteData = (Button)findViewById(R.id.delete_data);
deleteData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LitePal.deleteAll(Books.class,"price < ?","15");
}
});
边栏推荐
- 【备战“金九银十”】2022年软件测试面试题最新汇总
- MySQL八股文背诵版(续)
- gRPC基础概念:闭包
- 软件测试面试题:测试用例与测试脚本?
- 软件测试面试题:对 RUP,CMM,CMMI,XP,PSP,TSP 的认识?
- Fatal error in launcher: Unable to create process using xxx --logdir logs(tensorboard使用)
- 阿里亿级并发册 + 机器学习算法 + 面试册 + 优化册 + 代码册 笔记!!!
- OpenHarmony啃论文俱乐部-啃论文心得
- C# string与stream的相互转换
- paddle2.3和torch1.8在SentenceBert上的性能对比
猜你喜欢
2022年PMP报考指南
Deep Learning【第二章】
SyntaxError: invalid syntax
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
Lianshengde W801 series 5-WeChat applet and W801 Bluetooth communication routine (read notes)
wincc如何实现远程监控1200PLC
TRCX:掺杂过程分析
Engineering Design of Single-sided PCB Routing Impedance
Future Trends in Vulnerability Management Programs
Inter-process communication method (2) Named pipe
随机推荐
软件测试面试题:Web服务器指标指标?
MySQL Basics [Part 1] | Database Overview and Data Preparation, Common Commands, Viewing Table Structure Steps
如何实现FPGA的可重复性设计
压力能变成动力
联盛德W801系列5-微信小程序与W801蓝牙通信例程(阅读笔记)
通过热透镜聚焦的高斯光束
install dlib library
连流量染色都没有,你说要搞微服务?
隐私计算融合应用研究
阿里的数据同步神器——Canal
如何解决高度塌陷
【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储
Shengxin experiment record (part2)--tf.reduce_sum() usage introduction
Research on the Application of Privacy Computing Fusion
TRCX: doping process analysis
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
C# string与stream的相互转换
备战“金九银十”,软件测试功能 / 数据库 /linux/ 接口 / 自动化 / 测试开发面试真题解析
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
22. Inventory service