前言:
在使用SQLite的时候,发现修改数据库表很麻烦,需要更改版本号,最重要的是,更新后以前保存的数据就没了!!!这多恐怖啊,其升级具体操作就是先删除原来的表,再新建同名表,也可以使用一些方法将数据不进行保留,但是很麻烦,对于小白来说,很痛苦。那么,万能的开源库就来拯救我们了,别说了,你一定会喜欢上它。
LitePal是一款开源的数据库框架,使用对象关系映射模式,(大家在使用Hibernate、mybatis也是ORM模式),其配置属性很少,自动维护表,提供封装的API,不需要写SQL语句。
LitePal使用步骤:
文件目录结构:
一、配置
1.将LitePal引入项目中,编辑app/build.gradle文件,在dependencies闭包中添加如下内容:(一般只需要修改最后一行其中2.0.0为LitePal版本号)
implementation 'org.litepal.android:core:2.0.0'
2.配置litepal.xml文件,在app/src/main目录下新建assets目录,在assets目录下新建litepal.xml文件,在xml文件中添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!--数据库名-->
<dbname value="UserDemo" />
<!--数据库版本号-->
<version value="1" />
<!--表-->
<list>
<mapping class="com.example.litepaldemo"/>
</list>
</litepal>
3.配置AndroidManifest.xml,配置如下内容:
android:name=".MyApplication"
相应的MyApplication.java文件如下:
public class MyApplication extends Application {
@Override
public void onCreate(){
super.onCreate();
LitePal.initialize(this);
}
}
二、创建级数据库
1.定义一个User类
public class User extends LitePalSupport {
private Integer id; //编号
private String username; //用户名
private String password; //密码
private String sex; //性别
private String address; //地址
//getter和setter方法
@Override
public String toString() {
return "User{" + "id=" + id + ", username='" + username + '\'' +
", password='" + password + '\'' +", sex='" + sex + '\'' +
", address='" + address + '\'' + '}';
}
}
2.在litepal.xml中的litepel标签里添加:(**包名写全哦,不然找不到哦,全部的映射模型类都写list里面就可以了)
<mapping class=”com.example.litepaltest.User”></mapping>
到此位置已经是完整的简单列子编写了,只要进行数据库操作,那么User表就会在数据库中创建,User类中属性对应相应表中的字段。
三、使用LitePal操作数据库
1.添加数据:
public void addUser(){
System.out.print("add....");
User user=new User();
user.setId(++i);
user.setUsername("susy");
user.setPassword("123");
user.setSex("女");
user.setAddress("上海");
user.save();
}
2.查询数据
public void queryUser(){
List<User> users=LitePal.findAll(User.class);
System.out.print("query....");
System.out.print("查询到的信息:");
for(User user:users){
System.out.println(user);
}
}
3.更改数据
public void updateUser(){
ContentValues values=new ContentValues();
values.put("username","may");
LitePal.update(User.class,values,2);
}
4.删除数据
public void deleteUser(){
LitePal.delete(User.class,1);
}
其操作运行截图:
删除数据:删除了了id为1的数据
更新数据:更新了id为2数据,将username改为:may
四、升级数据库
1.对持久化类进行更改
2.更改litepal.xml的version即可
例如:增加User类的字段 phone
public class User extends LitePalSupport {
private Integer id; //编号
private String username; //用户名
private String password; //密码
private String sex; //性别
private String address; //地址
private String phone;//电话 ,记得增加该属性的getter和setter方法
修改litepal.xml标签中的version
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="UserDemo" />
<version value="2" />
<list>
<mapping class="com.example.litepaldemo.User"/>
</list>
</litepal>
以上就是更新数据库的版本操作,是不是很简单,而且原来的数据还会保存下来。
范运好