当前位置:网站首页>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");
}
});
边栏推荐
- 一言(ヒトコト)Hitokoto API
- Tomca启动闪退问题如何解决
- 报考PMP需要做些什么准备?
- Deep Learning [Chapter 2]
- OpenHarmony啃论文俱乐部-啃论文心得
- Mask RCNN 网络详解
- Lianshengde W801 series 5-WeChat applet and W801 Bluetooth communication routine (read notes)
- 117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
- Is container technology really the savior of environmental management?
- 划分字母区间[贪心->空间换时间->数组hash优化]
猜你喜欢
[Detailed explanation of C data storage] (1) - in-depth analysis of the storage of shaping data in memory
This Thursday evening at 19:00, Lesson 5 of the sixth phase of knowledge empowerment丨OpenHarmony WiFi subsystem
88Q2110 通过C22方式访问C45 phy地址
paddle2.3和torch1.8在SentenceBert上的性能对比
划分字母区间[贪心->空间换时间->数组hash优化]
颠覆性创新招商,链动2+1是个怎么样的制度模式?
Construction inspection, no rules and no square
Future Trends in Vulnerability Management Programs
SyntaxError: invalid syntax
想进阿里?先来搞懂一下分布式事务
随机推荐
【开源】壁纸软件,给自己电脑设计专属特效
软件测试面试题:谈谈你对 cmm 和 is9000 的认识?
TRCX:掺杂过程分析
[oops-framework] Template project [oops-game-kit] Introduction
YTU 2411: 谁去参加竞赛?【简单循环】
络达开发---串口日志&日志过滤
压力能变成动力
C# WebBrower1控件可编辑模式保存时会提示“该文档已被修改,是否保存修改结果”
一言(ヒトコト)Hitokoto API
Inter-process communication method (2) Named pipe
测试3年,开口就要25k?面试完最多给15k...
软件测试面试题:Web服务器指标指标?
网络安全笔记第四天day4(kali基本操作)
MySQL中的DDL常规操作总结
Qt 中的隐式共享
The concept of services
从键入网址到网页显示的详细过程
进程间通信方式(2)有名管道
SIT221 Data Structures and Algorithms课程辅导
络达开发---自定义Timer的实现