GreenDao(数据库)的使用

//你的项目下 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();
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值