说明
LitePal属于轻量级数据库,不像一些其它数据库框架需每模型类单配一映射关系XML,LitePal所有映射自动完成。据LitePal数据类型支持,可进行对象关系映射的数据类型共8种,int、short、long、float、double、boolean、String和Date。只要声明成这8种数据类型的字段都会被自动映射到数据库表中,不需任何额外配置。
配置
- 导入包
1 compile 'org.litepal.android:core:1.3.2'
配置litepal.xml 文件
在assets目录下新建一个litepal.xml 文件,编辑文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="easydb" />
<version value="1" />
<list>
<mapping class="org.loader.litepal.Person" />
</list>
</litepal>
- 配置LitePalApplication
修改AndroidManifest.xml文件:
<application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
创建数据库:
1,首先定义一个实体类 Person.java
public class Person extends DataSupport{
private String name;//名字
private String time;//时间
private String age;//年龄
private String sex;//性别
public void setName(String name) {
this.name = name;
}
public void setTime(String time) {
this.time = time;
}
public void setAge(String age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public String getTime() {
return time;
}
public String getAge() {
return age;
}
public String getSex() {
return sex;
}
}
2 数据库操作类SqlUtils
public class SqlUtils {
// 插入数据
public static void insertData(String name, String time, String age, String sex) {
Person p = new Person();
p.setName(name);
p.setTime(time);
p.setAge(age);
p.setSex(sex);
p.save();
}
//删除当前时间的数据
public static void deletePersonTime(String time) {
DataSupport.deleteAll(Person.class,"time=?",time);
}
// 删除所有的数据,
public static void deleteDataAll() {
DataSupport.deleteAll(Person.class);
}
// 遍历查询所有数据,保存到List里面
public static void lookupDataAll(List<Person>list) {
list.clear();
List<Person> persons = DataSupport.findAll(Person.class);
for (Person p : persons) {
System.out.println(p.getName());
list.add(p);
}
}
//根据时间查询对象
public static Person timeGetlookupDataAll(String time) {
List<Person> persons = DataSupport.findAll(Person.class);
for (Person p : persons) {
System.out.println(p.getName());
if (time.equals(p.getTime())) {
return p;
}
}
return null;
}
//根据时间改变里面的年龄,可以灵活的更换数据更新内容
public static void updataSql(String time,String age) {
SQLiteDatabase db = Connector.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("age", age);
db.update("Person", values, "time = ?", new String[] {time});
}
// 除此之外litepal还给我们提供了一个可以“自由发挥”的方法,也就是自己书写sql语句
public static void sqllite() {
Cursor cursor = DataSupport.findBySQL("select * from phone where id=?",
"3");
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
System.out.println(cursor.getString(cursor
.getColumnIndex("phonenumber")));
}
cursor.close();
}
}