LitePal是一款Android开源数据库框架,使用方便,相比SqlLite不需要太复杂的执行语句,快捷使用方便上手。
这是LitePal开源库的网址:https://github.com/LitePalFramework/LitePal 在这里你可以获取关于LitePal最新的消息。
下面开始配置LitePal到环境中。
1.添加类库:一共有两种方式,一个是在build.gradle中添加依赖,一个是在lib目录中添加jar包。
在AS中添加此依赖
compile 'org.litepal.android:core:1.6.0'
2.配置litepal.xml文件:在main目录下创建assets目录,然后在assets目录下创建一个名为litepal.xml的文件,并且将一下代码复制进去。
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" ></dbname>
<version value="1" ></version>
<list>
</list>
</litepal>
dbname标签中value的值demo就是数据库的名称。
version标签中的value的值1就是数据库的版本号,以后做数据库升级会用到。
list标签中是用来声明数据表的。
3.修改AndroidManifest.xml:指定application标签中的name属性,如下
<application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
.......
</application>
现在LitePal的前期使用工作就准备好了,下面开始正式使用LitePal~
LitePal采用的是对象映射的模式 ,所以我们可以用面向对象的细想来实现数据库。
假如我们想创建一个Student表,设置字段name,num,sex,grade等这些
我们只需要创建一个JavaBean 并且让这个类继承DataSupport
public class Student extends DataSupport {
private String name;
private String num;
private String sex;
private String grade;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
}
创建后我们需要把类映射到刚刚创建的litepal.xml中:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo" ></dbname>
<version value="2" ></version>
<list>
<mapping class="top.osi00.demo01.bean.Student"></mapping>
</list>
</litepal>
在list标签中添加mapping标签 并且指定类的路径。
接下来就可以对数据库进行增删改查了~
LitePal添加数据:
Student student=new Student();
student.setName("小明");
student.setNum("66");
student.setSex("男");
student.setGrade("99");
if (student.save()){
Toast.makeText(MainActivity.this, "增", Toast.LENGTH_SHORT).show();
}
save()方法有返回值且是boolean类型的返回值,所以可以利用这点判断数据是否添加成功。
LitePal删除数据:
DataSupport.deleteAll(Student.class, "name=?", "小明");
删除姓名为小明的数据
LitePal修改数据:
Student student = new Student();
student.setGrade("100");
student.updateAll("name=? and num =?", "小明", "66");
修改姓名为小明且学号为66的数据行成绩为100
LitePal查询数据
List<Student> list = new ArrayList<Student>();
list = DataSupport.findAll(Student.class);
for (int i = 0; i < list.size(); i++) {
Log.i("student", " " + list.get(i).getName());
Log.i("student", " " + list.get(i).getNum());
Log.i("student", " " + list.get(i).getSex());
Log.i("student", " " + list.get(i).getGrade());
Log.i("student", "-------------------------------------");
把Student表中的所有数据查询后存入list集合中。
也可以按条件查询~
List<Student> list = new ArrayList<Student>();
list = DataSupport.where("num","66").find(Student.class);
for (int i = 0; i < list.size(); i++) {
Log.i("student", " " + list.get(i).getName());
Log.i("student", " " + list.get(i).getNum());
Log.i("student", " " + list.get(i).getSex());
Log.i("student", " " + list.get(i).getGrade());
Log.i("student", "-------------------------------------");
}
查询学号为66的数据
下面开始演示一下这些代码
执行增添操作后再执行出现查询的操作后Log日志的打印如下
可以看出我们增加的数据都已经打印出来了
执行删除操作后再执行出现查询的操作后你会发现再怎么点查询也查不出东西,因为表中的数据都已经删掉了
执行增添操作后再执行出现查询的操作后,再执行“修改”操作后再执行出现查询的操作后Log日志的打印如下
你会发现小明的成绩已经改成100了~!
这就是litepal的操作~
感谢阅读~