Android:日常学习笔记(10)———使用LitePal操作数据库
Android:日常学习笔记(10)———使用LitePal操作数据库
引入LitePal
什么是LitePal
LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上。
关于对象关系映射:
我们使用的对象语言是面向对象语言,而使用的数据库则是关系型数据库,将面向对象的语言与面向关系的数据库之间建立一种映射关系,这就是对象关系映射。我们可以不用编写任何SQL语句,而用面向对象的设计思想操作数据库。
配置LitePal
1.添加依赖
2.编写XML配置文件
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<dbname value="BookStore"></dbname> //数据库名称
<version value="1"></version> //数据库版本
<list></list>
</litepal>
说明:
<dbname>是数据库的名字
<version>是数据库的版本号
<list>是数据库的映射模型(数据库表)
<mapping>是数据库的映射模型的地址(数据库表结构)
3.配置LitePalApplication
<application
android:name="org.litepad.LitePalApplication"
.....>
....
</application>
创建和升级数据库
创建数据库及Book表
1.定义JavaBean
public class Book {
private int id;
private String author;
private double price;
private int pages;
private String name; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} .....
}
2.将Book类添加到映射模型列表中
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="1"></version>
<list>
<mapping class="com.example.zy.dealhelper.database.Book"></mapping>
</list>
</litepal>
3.调用命令创建数据库
public void onClick(View v) {
Connector.getDatabase();
}
4.litePal会自动创建数据库和Mapping对象类的数据表
升级数据库
LitePal升级数据库非常简单,你完全不需要思考任何的逻辑,只需要修改你想改的任何内容,然后将版本后递增即可。比如我们要往Book表中添加一列,如press(出版社),直接在JavaBean中添加即可。
public class Book {
private int id;
private String author;
private double price;
private int pages;
private String name;
private String press;//出版社 public String getPress() {
return press;
} public void setPress(String press) {
this.press = press;
}
......
}
或者想多创建一张表,你也只需要再写一个JavaBean类就好。
public class Catagory {
private int id;
private String categoryName; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
}
......
}
别忘了最后再LitePal的配置文件中,加入mapping和更新版本号
增删改查
添加数据
使用LitePal添加数据异常简单:
我们只需要创建出模型类并将数据设置好,调用save()方法即可。
前提:
要执行CURD操作的数据表必须继承自DataSupport
实例:
public void onClick(View v) {
Book book =new Book();
book.setName("The Da Vinci Code");
book.setAuthor("Dan Brown");
book.setPages(454);
book.setPrice(16.96);
book.setPress("Unknow");
book.save(); //只需要调用继承方法,save()即可
}
更新数据
对已存储对象重新设值:
条件匹配:
切记如果不指定条件会更新所有记录的!
删除数据
DataSupport.deleteAll(Book.class,"price < ?","15")
查询数据
简单查询:
//查找某表的所有数据
List<Book> books =DataSupport.findAll(Book.class);
//第一条数据
Book first =DataSupport.findFirst(Book.class);
//最后一条数据
Book last =DataSupport.findLast(Book.class);
连缀查询:
关于ADB启动错误的解决方案:
1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。
2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字
3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID
4、查找第2步中看到的数字PID,然后结束相关进程,即可
Android:日常学习笔记(10)———使用LitePal操作数据库的更多相关文章
- Android:日常学习笔记(9)———探究持久化技术
Android:日常学习笔记(9)———探究持久化技术 引入持久化技术 什么是持久化技术 持久化技术就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失 ...
- Android:日常学习笔记(8)———探究UI开发(3)
Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...
- Android:日常学习笔记(9)———探究广播机制
Android:日常学习笔记(9)———探究广播机制 引入广播机制 Andorid广播机制 广播是任何应用均可接收的消息.系统将针对系统事件(例如:系统启动或设备开始充电时)传递各种广播.通过将 In ...
- Android:日常学习笔记(8)———开发微信聊天界面
Android:日常学习笔记(8)———开发微信聊天界面 只做Nine-Patch图片 Nine-Patch是一种被特殊处理过的PNG图片,能够指定哪些区域可以被拉升,哪些区域不可以.
- Android:日常学习笔记(8)———探究UI开发(5)
Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...
- Android:日常学习笔记(7)———探究UI开发(4)
Android:日常学习笔记(7)———探究UI开发(4) UI概述 View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...
- Android:日常学习笔记(8)———探究UI开发(2)
Android:日常学习笔记(8)———探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...
- Android:日常学习笔记(7)———探究UI开发(1)
Android:日常学习笔记(7)———探究UI开发(1) 常用控件的使用方法 TextView 说明:TextView是安卓中最为简单的一个控件,常用来在界面上显示一段文本信息. 代码: <T ...
- Android:日常学习笔记(6)——探究活动(4)
Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...
随机推荐
- apue学习笔记(第三章 文件I/O)
本章开始讨论UNIX系统,先说明可用的文件I/O函数---打开文件.读写文件等 UNIX系统中的大多数文件I/O只需用到5个函数:open.read.write.lseek以及close open函数 ...
- 全球IT管理最佳实践之DevOps Master 认证
原文:http://soft.chinabyte.com/30/13940030.shtml 作者:国际最佳实践管理联盟 孙振鹏 关键字: DevOps.DevOps认证.DevOpsDays.Dev ...
- C++井字棋游戏,DOS界面版
据说有一个能保证不败的算法.明天看看先再写个PVC版的. 正题.今天无聊写了个井字棋游戏,顺便逐渐让自己习惯良好的代码风格,放上来给新手学习学习. jzq2.cpp /* N字棋游戏PVP版,DOS版 ...
- leetcode第一刷_Binary Tree Zigzag Level Order Traversal
以出现的频率来看.树的层序遍历一定是考察的重点,除非工作人员想找题水数量. zigzag,还是有几道题的,层序的这个非常easy,假设是奇数层.reverse下面就可以.无他.我写的时候预计还不知道这 ...
- Cygwin 版本的 Curl 安装,提取,使用笔记
Cygwin 版本的 Curl 安装,提取,使用笔记 Cygwin 版本的 Curl 使其恢复 HTTPS 请求功能Cygwin 版本的 Curl 依赖的 DLL 清单提取 Cygwin 版本的 Cu ...
- 深入浅出MySQL事务处理和锁机制
1. 事务处理和并发性 1.1. 基础知识和相关概念 1 )全部的表类型都可以使用锁,但是只有 InnoDB 和 BDB 才有内置的事务功能. 2 )使用 begin 开始事务 ...
- lua string库
--lua中字符串索引从前往后是1,2,……,从后往前是-1,-2……. --string库中所有的function都不会直接操作字符串,只返回一个结果. -------------------- ...
- csv文件中出现乱码的解决方法
1.首先用UE打开CSV文件,发现没有乱码了. 2.然后新建一个txt文本,把CSV中的数据复制到txt文本中,保存格式为ANSI/ASCII. 3.复制txt文件,再把副本后缀改为CSV格式,再用E ...
- 查看系统启动内核检測硬件信息dmesg
dmesg用来显示开机信息.kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log文件夹中.名称为dmesg的文件 ...
- 出现windows启动服务失败(无法从命令行或调试器启动,需要安装InstallUtil.exe)的解决办法
两种方法1 从命令行安装2 选择项目-视图-自定义操作 然后将 安装,提交,回滚,卸载分别加入自定义操作,注意InstallClass属性为true