码迷,mamicode.com
首页 > 数据库 > 详细

LitePal数据库的基本操作

时间:2019-01-30 07:33:13      阅读:399      评论:0      收藏:0      [点我收藏+]

标签:定义   litepal   数据库   升级   l数据库   数据表   png   并且   rri   

LitePal是一个十分简单的开源库,使用LitePal数据库首先需要简单的配置下

1》编辑app/build.gradle

dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2‘, {
exclude group: ‘com.android.support‘, module: ‘support-annotations‘
})
compile ‘com.android.support:appcompat-v7:26.+‘
testCompile ‘junit:junit:4.12‘
compile ‘org.litepal.android:core:1.3.2‘
}

2》在main.java中新建文件夹assets,下新建litepal.xml,我新建了一个StudentScore

<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="StudentScore"></dbname>
<version value="2"></version>
<list>
<mapping class="com.example.litepaltest.Student_Score"></mapping>
</list>
</litepal>

3》在litepal.xml中添加类后,只要运行一次数据库操作系统就会自动建立数据表,若想更新升级数据库只需要修改类中的代码,然后改一下版本号version就可以

 

 

技术分享图片

 

 

技术分享图片

 

一,添加数据

若要对数据进行操作只需要调用类中的save函数即可,所以首先让我们写的类继承一下DataSupport

public class Student_Score extends DataSupport{
public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public void setName(String name) {
this.name = name;
}

public void setScore(double score) {
this.score = score;
}

public int getNum() {
return num;
}

public String getName() {
return name;


}

public void setNum(int num) {
this.num = num;
}

public double getScore() {
return score;
}

private int id;
private String name;
private double score;
private int num;
}

然后再main.java中

b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Student_Score s=new Student_Score();
s.setName("王*宇");
s.setNum(20163489);
s.setScore(100.00);
s.save();
}
});



技术分享图片

 

 

二,更新数据

(1)使用相同的一个对象

b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Student_Score s=new Student_Score();
s.setName("王宇");
s.setNum(20163489);
s.setScore(100.00);
s.save();
s.setName("王*思");
s.setNum(20163490);
s.save();
}
});

由于我们是先定义了一个s变量将其chucun,然后又再一次储存所以系统会认为是一个变量从而将之前储存的数据修改

(2)直接使用方法updateAll

b3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Student_Score s=new Student_Score();
s.setName("郭*");
s.setNum(2016391);
s.setScore(20.00);
s.updateAll("id = ?","2");

}
});



技术分享图片

当你想把一个字段更新为默认值是updateall函数是不可以使用的但可以通过以下代码实现

/*
s.setToDefault(name);
s.updateAll();
*/

三,删除数据

删除数据只需要调用DataSupport.deleteAll函数即可

b4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DataSupport.deleteAll(Student_Score.class,"num < ?","20163390");
}
});

四,查询数据

litepal的查询相比SQLate简直简单了不是一点半点,只需要调用findall()函数便可

Button b5=(Button)findViewById(R.id.b5);
b5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
List<Student_Score> student_scores=DataSupport.findAll(Student_Score.class);
for(Student_Score student_score:student_scores){
Log.d(TAG, "学号: "+student_score.getNum());
Log.d(TAG, "姓名: "+student_score.getName());
Log.d(TAG, "成绩: "+student_score.getScore());
}
}
});

若想实现一个复杂的查询可以参考一下代码,以下代码是在Student_Score表中取出学号大于20163489的第20-30条数据并且按照学号升序排列

List<Student_Score> students=DataSupport.select("num","name","score")
.where("num > ?","20163489")
.order("num")
.limit(10)
.offset(20
).find(Student_Score.class);

 

LitePal数据库的基本操作

标签:定义   litepal   数据库   升级   l数据库   数据表   png   并且   rri   

原文地址:https://www.cnblogs.com/837634902why/p/10336580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!