greenDao简单的增删改查

greenDao是一个使用于android的ORM框架,现在主流的ORM框架有OrmLite,SugarORM,Active Android,Realm以及GreenDAO.

greenDao的性能远远高于同类的ORM框架,具体的测试结果官网有。

今天简单的用greenDao实现了数据库的增删改查,确实比以前自己写SQL语句舒服多了,不用再考虑SQL语句很方便。


想使用greenDao肯定要在项目中初始化它,不过它的初始化和其他的库不一样,对于第一次使用的新手确实是比较麻烦的事情


IDE工具:AndroidStudio

1.先把项目切换到Project,然后在main目录下新建一个java-gen的目录,和java目录平级,如图所示



2.ok,接下来切换到Android,在build.gradle引用greendao


  sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/main/java-gen']
        }
    }


compile 'org.greenrobot:greendao-generator:2.2.0'
compile 'org.greenrobot:greendao:2.2.0'

如图所示



3.这样只是完成初始部分,还不能直接使用GreenDao在项目中,刚开始确实比较麻烦,不过一切部署好了以后才是爽的开始

首先创建一个目录,命名为greendao,创建一个MyGreenDaoGenerator.java,在里面初始化项目的数据库


public class MyGreenDaoGenerator {


    public static void main(String[] args) throws Exception {

        //版本号,包名
        Schema schema = new Schema(1, "demo.greendaodemo");

        Entity user = schema.addEntity("User");
        user.addIdProperty().primaryKey();
        user.addStringProperty("userName").notNull();
        user.addStringProperty("userSex").notNull();

        new DaoGenerator().generateAll(schema, "../greenDaoDemo/app/src/main/java-gen");
    }

}

完成之后运行这个java类,注意是运行这个java文件,不是运行整个项目。

当IDE提示这个样子的时候证明greendao已经初始化完成了,就可以在项目中使用greendao进行数据库的操作了


这个时候项目结构如图



上面的几个java文件是自动生成的 ,不用管


接下来看看如何进行简单的增删改查


app的界面如图所示




下面的listview展示数据库


首先得到Dao对象

        devOpenHelper = new DaoMaster.DevOpenHelper(this, "greendao", null);

        writableDatabase = devOpenHelper.getWritableDatabase();

        daoMaster = new DaoMaster(writableDatabase);

        daoSession = daoMaster.newSession();

        //得到Dao的对象
        userDao = daoSession.getUserDao();

add SQLite data

创建sql的时候就只是简单的名字和年龄

    private void addSQLite(String name, String sex) {

        User user = new User(null, name, sex);

        userDao.insert(user);
    }


delete SQLite data

  private void deleteSQLite(Long id) {

        userDao.deleteByKey(id);
        //delete sql all;
       // userDao.deleteAll();删除全部

    }



update SQLite data

    private void upDateSQLite(long id, String name, String sex) {
        userDao.update(new User(id, name, sex));
    }

search SQLite data


查询之后简单的弹个dialog显示查询到的数据

    private void searchSQLite(long id) {
        QueryBuilder<User> queryBuilder = userDao.queryBuilder().where(UserDao.Properties.Id.eq(id));
        // .list() Returns a collection of entity classes
        List<User> user = queryBuilder.list();
        // If you only want results , use .unique() method
        // Person person = queryBuilder.unique();
        new AlertDialog
                .Builder(this)
                .setMessage(user != null && user.size() > 0 ? user.get(0).getUserName() + "--" + user.get(0).getUserSex() : "data null")
                .setPositiveButton("ok", null).create().show();
    }


最后上个效果图



Demo地址:git地址       csdn下载链接



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值