greenDAO学习心得,实现简单的CRUD

一.关于greenDAO:

1.greenDAO官网:http://greendao-orm.com/
2.项目下载地址:https://github.com/greenrobot/greenDAO

为啥使用greenDAO呢:看人家官网给的图


二.废话不多说,直接开始码代码


第一步.添加依赖:

    compile 'de.greenrobot:greendao:2.1.0'
    compile 'de.greenrobot:greendao-generator:2.1.0'

第二步,创建一个名为db的包如:  :

第三步,自定义一个类,命名一般是 CustomDaoGenerater,码完就run一下,然后喝一杯咖啡(第一次build生成代码挺慢的)

代码:

public class CustomDaoGenerater {
    public static void main(String[] args) {
        //1.第一个参数是数据库版本号,第二个参数是数据库的包名
        Schema schema = new Schema(1, "com.yl.greendaodemo.db");
        //创建表,参数是表名
        Entity info = schema.addEntity("Info");
        //为表添加字段
        info.addIdProperty();//该字段是id默认主键自增长
        info.addStringProperty("name");
        info.addIntProperty("age");
        info.addStringProperty("tel");
        //生成数据库相关类
        //第二个参数指定生成文件的本次存储路径,AndroidStudio工程指定到当前工程的java路径
        try {
            new DaoGenerator().generateAll(schema,"C:\\Users\\Administrator\\Downloads\\greenDAOdemo\\app\\src\\main\\java");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

然后就会生成如图的四个java文件(如果错误请删除db包,回到第二步) 

第四步,在Application中通过DaoMaster.DevOpenHelper初始化数据库


代码:(初始化过程最好放在Application中进行,避免创建多个Session)

public class MyApp extends Application {

    public InfoDao getDao() {
        return dao;
    }
    private InfoDao dao;
    @Override
    public void onCreate() {
        super.onCreate();
        setupDatabase();
    }
    /**
     * 设置数据库
     */
    private void setupDatabase() {
        //通过DaoMaster的内部类DevOpenHelper创建数据库
        //注意: 默认的DaoMaster.DevOpenHelper会在数据库升级时,删除所有的表
        // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "student.db", null);//获取数据库
        SQLiteDatabase database = helper.getWritableDatabase();//获取数据库
        DaoMaster daoMaster = new DaoMaster(database);//获取DaoMaster
        DaoSession daoSession = daoMaster.newSession();//获取session
        //拿到对应表的dao对象
        dao = daoSession.getInfoDao();
    }
}


第五步,获取数据库的DAO对象,即可进行增删改查的操作


代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    MyApp application = (MyApp) getApplication();
    dao = application.getDao();
}

@OnClick({R.id.btn_add, R.id.btn_delete, R.id.btn_update, R.id.btn_query})
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.btn_add://            Info user = new Info(null, "zhangsan", 12, "13112345678");
            Info user2 = new Info(null, "lisi", 22, "13222345678");
            Info user3 = new Info(null, "wangwu", 32, "13332345678");
            Info user4 = new Info(null, "zhaoqi", 42, "13442345678");
            dao.insert(user);
            dao.insert(user2);
            dao.insert(user3);
            dao.insert(user4);
            break;
        case R.id.btn_delete://            dao.deleteByKey(1L);
            break;
        case R.id.btn_update://            user4 = new Info(null, "赵四", 42, "13442345678");
            dao.update(user4);

            break;
        case R.id.btn_query://            QueryBuilder<Info> infoQueryBuilder = dao.queryBuilder();
            QueryBuilder<Info> builder = infoQueryBuilder.where(InfoDao.Properties.Age.eq("32"));
            List<Info> list = builder.list();
            for (Info info:
                 list) {
                Log.e(TAG, "onClick: "+info.getName()+"--"+info.getAge()+"--"+info.getTel() );

            }
            break;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值