安卓 GreenDao 基本使用

转载自:http://blog.csdn.net/fengltxx/article/details/53708769
第一步:将GreenDao引入到项目中(以Studio为例)

  • 1.在Project–>budld.gradle中配置如下:
dependencies {
            classpath 'com.android.tools.build:gradle:2.0.0'
            // 这是需要配置的地方
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'//GreenDao
        }
  • 2.在Modle–>build.gradle中配置:
    ` apply plugin: ‘com.android.application’
    // 这是需要配置的地方—1
    apply plugin: ‘org.greenrobot.greendao’//GreenDao

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
    
     ...
    }
    // 需要配置的地方-----2
    greendao {
        schemaVersion 1    // 当前数据库结构的版本
        //daoPackage 'com.greendao.gen' // 生成的DAO,DaoMaster和DaoSession的包名。默认是实体的包名。
        //targetGenDir 'src/main/java'  //生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)。
       // targetGenDirTest      //生成的单元测试的根目录。
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
    
        // 需要配置的地方 -----3    GreenDao
        compile 'org.greenrobot:greendao:3.2.0'//GreenDao
        compile'org.greenrobot:greendao-generator:3.0.0'
    
    
    }`
    
  • 配置完成后,同步工程就可以了.
    第二步:编写实体类

School类:

@Entity
    public class School {
        @Id
        private Long id;
        private String name;
    }
  • 编写完这个普通的实体类后.

点击导航栏上的Build–>Make Project.
随后会看到这个实体类变身了. 如下:

/**
     * ONE Goal,ONE Passion!
     * Created by ${PK_Night} on 2016/12/12.
     * comment:
     */
    @Entity
    public class School {
        @Id
        private Long id;
        private String name;
        @Transient
        private int tempUsageCount; // not persisted
        @Generated(hash = 2095953704)
        public School(Long id, String name) {
            this.id = id;
            this.name = name;
        }
        @Generated(hash = 1579966795)
        public School() {
        }
        public Long getId() {
            return this.id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return this.name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

帮我们生成了部分代码.

注:生成代码后,不要在更改这个文件

而且GreenDao已经帮我们生成了DAO等.DAO位置如下
这里写图片描述

  • 第三步:开始增删CRUD

第一种:使用SqliteOpenHelper对象去操作.

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydb", null);
            SQLiteDatabase db = helper.getWritableDatabase();
            //       原生sql 语句
            //  String sql = "insert into school values(3,'txx')";
            // db.execSQL(sql);  // 可执行曾,删,改 
          //db.rawQuery(); 执行查询

既然拿到了SQLiteDatabase对象,就可以直接使用sql操作了.如果你觉得GreenDao仅仅让我们方便地拿到 SQLiteDatabase那就太小看它了.它也可以像hibernate一样,直接操作对象来进行CRUD.

  • 第二种: 使用DaoSession 直接根据对象进行CRUD.
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "mydb2", null);
         SQLiteDatabase db = helper.getWritableDatabase();
         DaoMaster daoMaster = new DaoMaster(db);
         DaoSession session = daoMaster.newSession();
  • 增:
    school = new School((long)1,"fy");
    session.insert(school);
  • 删:
school = new School((long)1,"fy");
     session.delete(school); 
  • 改:
school = new School((long) 1, "fynight");
         session.update(school);
  • 查:
//  条件查询
        List<School> schools = session.queryRaw(School.class, "where name = ?", new String[]{"fy"});
                for (int i = 0; i < schools.size(); i++) {
                    System.out.println("查询出来数据" + schools.get(i).getName());
                }

        // 查询所有
         List<School> school = session.loadAll(School.class);
        String schoolName = "";
        for (int i = 0; i < school.size(); i++) {
            schoolName += school.get(i).getName() + ",";
            System.out.println("查询出来数据" + schoolName);
        }

简单的GreenDao简单demo已经 OK!接下来说一说 实体类注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值