由于在最近的项目中使用到了有关数据库的操作,传统的数据库SQLite的语句显的比较臃肿复杂难记,所以后面我使用了郭大神的LitePal数据库框架,带大家看看LitePal是怎样实现传统数据库SQLite的功能。通过本篇文章的学习,你讲学会:
1.什么是LitePal
2.导入LitePal到项目中以及初始化
3.LitePal的增删改查
4.LitePal实现数据库的升级
一.什么是LitePal
LitePal是一款开源的Android数据库框架,采用对象关系映射(ORM)模式,将常用的数据库功能进行封装,可以不用写一行SQL语句就可以完成创建表、增删改查的操作。
二.LitePal的使用步骤
1.添加依赖:
compile 'org.litepal.android:core:1.6.1'
2.创建一个类Student继承DataSupport,可能你猜到了,这个就是相当于我们数据库中的一张表,bean的属性就是代表表的字段。然后在main下方出创建assets目录,新建litepal.xml文件,在文件中如下写:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="demo"></dbname>
<!--通过这个加一以及实体类属性修改进行版本升级-->
<version value="1"></version>
<list>
<mapping class="com.example.linkbasic.litepaltest.Student"></mapping>
</list>
</litepal>
区中的含义表示的是:<dbname>的value就是数据库的名称,<version>用于设定数据库的版本号,<list>用于设定所有的映射模型,也就是我们创建的bean的路径,其实也就是我们数据库中的一个表。
3.LitePal的初始化:
在MyApplication的onCreate方法中初始化LitePal:
LitePal.initialize(this);
不要忘记在在清淡文件的Application上加上android:name=".MyApplication"
通过以上三个步骤我们就将Litepal集成到我们的项目中了,我们就能对我们的数据库进行增删改查和进行版本升级。
三.LitePal的增删改查
增
1.增加一条数据
直接调用student.save()方法即可插入
//单个插入
Student student = new Student();
student.setAge(20);
student.setName("张三");
if (student.save()) {
Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "插入失败", Toast.LENGTH_SHORT).show();
}
2.批量插入数据
批量插入数据使用DataSupport.saveAll(studentList),将一个集合的数据插入到表中。
//批量插入
for (int i = 0; i < 10; i++) {
Student student1 = new Student();
student1.setName("张三" + i);
student1.setAge(20 + i);
studentList.add(student1);
}
DataSupport.saveAll(studentList);
删
1.根据id进行删除
//方式一(根据id删除)
DataSupport.delete(Student.class, 2);
2.根据条件进行删除
//方式二(根据条件删除)
DataSupport.deleteAll(Student.class, "name=?", "张三22");
3.删除整个表数据
//方式三(删除表所有数据)
DataSupport.deleteAll(Student.class);
4.直接调用对象的delete方法删除
Student deleteStudent=new Student();
if(deleteStudent.isSaved()){//只有保存到数据库的数据调用delete方法才有效
deleteStudent.delete();
}
改
1.根据id进行更改
//方式一(根据id更新)
ContentValues values1 = new ContentValues();
values1.put("name", "小一");
DataSupport.update(Student.class, values1, 1);
或者
//方式三(根据id更新)
Student updateStudent = new Student();
updateStudent.setName("王五");
updateStudent.update(3);
2.根据条件进行更新
//方式二(根据条件更新)
ContentValues values2 = new ContentValues();
values2.put("name", "李四");
DataSupport.updateAll(Student.class, values2, "age>? and name=?", "25", "张三7");
或者
//方式四(根据条件更新)
Student updateStudent2 = new Student();
updateStudent2.setName("巴拉巴拉");
updateStudent2.updateAll("age>?", "27");
查
1.查询单条数据
//方式一(查询单个数据)
Student student = DataSupport.find(Student.class, 1);
Student firstNews = DataSupport.findFirst(Student.class);//第一条数据
Student lastNews = DataSupport.findLast(Student.class);//最后一条数据
2.查询多条数据和所有数据
//方式二(查询多个和所以数据)
List<Student> studentList1 = DataSupport.findAll(Student.class, 1, 3, 5, 7);
List<Student> allStudent = DataSupport.findAll(Student.class);
3.根据条件查询数据
//方式三(条件查找数据)
List<Student> studentList2 = DataSupport.where("age > ?", "23").find(Student.class);
List<Student> studentList3 = DataSupport.select("name").where("age > ?", "23").find(Student.class);//要查询字段
List<Student> studentList4 = DataSupport.select("name")
.where("age > ?", "24")
.order("age desc").find(Student.class);//年龄倒叙,asc表示正序排序
以上就是我们数据库中经常用到的增删改查的方法。
四.LitePal数据库的升级
我们的数据库在后续的开发中可能需要增加新的表或者新的字段属性啊,所以我们需要对数据库进行升级,LitePal数据库的升级也很方便。
1.增加新的表,就是新增继承DataSupport的类,并在assets目录下的litepal.xml文件的<list>中进行添加
2.增加字段,就直接在原有类的基础上新加属性就可以了
3.一定要记得将assets目录下的litepal.xml文件的<version>进行升级+1
4.配置完了,我们也需要操作一下数据库才能生成新的表或者新的字段:
Connector.getDatabase();
可以放在操作数据库之前即可。
通过以上四步就可以实现我们数据库的升级。是不是很简单。
五.总结
以上就是我对LitePal数据库框架的理解和使用,如有不足或者错误的地方请指正。不管怎样,代码不只是需要多看,更需要通过自己动手去写去熟悉才能有更深的印象,更好更全面的了解。
网友评论