环境
Android studio 3.2 + GreenDao 3.2.2
1.在project中的gradle添加
buildscript {
repositories {
...
mavenCentral() // add repository
}
dependencies {
...
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
}
2.在moudle的gradle中添加
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
android {
...
}
dependencies {
...
implementation 'org.greenrobot:greendao:3.2.2'
}
3.在moudle的gradle中配置GreenDao基本参数
android {
...
}
greendao {
schemaVersion 1 //当前数据库版本
daoPackage 'com.ydm.opengl.db.entity' //生成的Dao DaoMaster和DaoSession的包名称(源实体类的包名类)
targetGenDir 'src/main/java' //生成源应存储的位置。默认为构建目录(build\generated\source\greenDao)
}
dependencies {
...
}
4、配置完成后开始使用
4.1、创建一张学生表
@Entity
public class StudentInfoData {
@Id(autoincrement = true) //id设置为自增长
private Long studentId; //学院id
@Index(unique = true) //唯一性
private String studentNumber; //学号
private String studentName; //姓名
private String studentSex; //性别
private String studentScore; //成绩
}
4.2、点击Build–>Make Project 自动生成文件
ps:由于之前配置已经在build文件中配置了生成源应存储的位置
daoPackage 'com.ydm.opengl.db.entity' //生成的Dao DaoMaster和DaoSession的包名称(源实体类的包名类)
targetGenDir 'src/main/java' //生成源应存储的位置。默认为构建目录
所以当Make Project完成后,会在之前配置好的路径下自动生成DaoMaster、DaoSession、StudentInfoDataDao三个文件以及自动生成set.get方法
@Entity
public class StudentInfoData {
@Id(autoincrement = true) //id设置为自增长
private Long studentId; //学院id
@Index(unique = true) //唯一性
private String studentNumber; //学号
private String studentName; //姓名
private String studentSex; //性别
private String studentScore; //成绩
@Generated(hash = 112611198)
public StudentInfoData(Long studentId, String studentNumber, String studentName,
String studentSex, String studentScore) {
this.studentId = studentId;
this.studentNumber = studentNumber;
this.studentName = studentName;
this.studentSex = studentSex;
this.studentScore = studentScore;
}
@Generated(hash = 1698171545)
public StudentInfoData() {
}
public Long getStudentId() {
return this.studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
public String getStudentNumber() {
return this.studentNumber;
}
public void setStudentNumber(String studentNumber) {
this.studentNumber = studentNumber;
}
public String getStudentName() {
return this.studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getStudentSex() {
return this.studentSex;
}
public void setStudentSex(String studentSex) {
this.studentSex = studentSex;
}
public String getStudentScore() {
return this.studentScore;
}
public void setStudentScore(String studentScore) {
this.studentScore = studentScore;
}
}
4.3、获取Dao,及具体的操作
初始化+录入数据
private void getStudentDao(){
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"student.db");
daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
daoSession = daoMaster.newSession();
studentInfoDataDao = daoSession.getStudentInfoDataDao();
}
tvInputInfo.setOnClickListener(v -> {
try {
StudentInfoData studentInfoData = new StudentInfoData(null, etStuNum.getText().toString(),
etName.getText().toString(), etSex.getText().toString(), etScore.getText().toString());
long end = studentInfoDataDao.insert(studentInfoData);
if (end > 0){
Toast.makeText(this, "录入成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "录入失败", Toast.LENGTH_SHORT).show();
}
} catch (Exception e){
e.printStackTrace();
Toast.makeText(this, "学号是唯一的", Toast.LENGTH_SHORT).show();
}
});
今天就写到这了相关代码