//你的项目下 build.gradle
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
}
}
//你的 app 下 build.gradle
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
dependencies {
compile 'org.greenrobot:greendao:3.2.0'
}
//bean类的生成
实体类中常用的注解:
@Entity 表明这个实体类会在数据库中生成一个与之相对应的表。
@Id 对应数据表中的 Id 字段,有了解数据库的话,是一条数据的唯一标识。
@Property(nameInDb = “STUDENTNUM”) 表名这个属性对应数据表中的 STUDENTNUM 字段。
@Property 可以自定义字段名,注意外键不能使用该属性
@NotNull 该属性值不能为空
@Transient 该属性不会被存入数据库中
@Unique 表名该属性在数据库中只能有唯一值
当你写完实体类中的属性之后,点击编译,就会自动生成相应的 setter 和 getter 方法,至于那些 hash 值是自动赋值上去的。并且在该目录下生成 DaoMaster 和 DaoSession 这两个类用于初始化数据库。
@Entity
public class StudentBean {
@Id(autoincrement = true)
private Long _id;
@Property(nameInDb = "NAME")
private String name;
@Property(nameInDb = "AGE")
private String age;
@Generated(hash = 1672883425)
public StudentBean(Long _id, String name, String age) {
this._id = _id;
this.name = name;
this.age = age;
}
@Generated(hash = 2097171990)
public StudentBean() {
}
public Long get_id() {
return this._id;
}
public void set_id(Long _id) {
this._id = _id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return this.age;
}
public void setAge(String age) {
this.age = age;
}
}
/**
* 初始化数据库
*/
private void initGreenDao() {
DaoMaster.DevOpenHelper helper=new DaoMaster.DevOpenHelper(getApplicationContext(),"student.db",null);
DaoMaster daoMaster=new DaoMaster(helper.getWritableDb());
daoSession = daoMaster.newSession();
daoSession.clear();
}
/**
* 数据库的操作
*/
private void initData() {
beandao = daoSession.getStudentBeanDao();
//添加数据
addData();
//删除数据
//deleteData();
//修改数据
updateData();
//查询数据
queryData();
}
/*查询数据
*/
private void queryData() {
List<StudentBean> list=beandao.queryBuilder()
// .offset(2)//偏移量
.limit(3)//只获取结果集的前三条数据
.orderAsc(StudentBeanDao.Properties._id)//通过id进行排序
.where(StudentBeanDao.Properties.Name.eq("学生"))//查询条件,name为学生的数据
.build().list();
for (StudentBean studentBean : list) {
Toast.makeText(this,studentBean.getName()+""+studentBean.getAge(), Toast.LENGTH_SHORT).show();
}
}
/**
* 修改数据
*/
private void updateData() {
List<StudentBean> list = beandao.queryBuilder().build().list();
for (int i = 0; i < list.size() ; i++) {
if(i==1){
list.get(1).setName("学生++++++++++++++");
beandao.update(list.get(1));
}
}
}
/**
* 删除数据
*/
private void deleteData() {
//删除数据
List<StudentBean> list = beandao.queryBuilder().build().list();
for (int i = 0; i < list.size(); i++) {
Log.d("zoneLog", "studentNumber: " + list.get(i).getName());
Log.d("zoneLog", "name: " + list.get(i).getAge());
if(i==0){
//beandao.deleteByKey(list.get(0).get_id());//根据id来删除数据
// beandao.delete(list.get(0));//根据实体类来删除
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Toast.makeText(this, "删除完毕", Toast.LENGTH_SHORT).show();
}
}
}
/**
* 添加数据
*/
private void addData() {
//添加数据
StudentBean studentBean=new StudentBean();
studentBean.setName("学生");
studentBean.setAge("22");
beandao.insert(studentBean);
Toast.makeText(this, "添加成功...", Toast.LENGTH_SHORT).show();
}
GreenDao(数据库)的使用
最新推荐文章于 2024-09-12 17:25:58 发布