GreenDao使用方法

GreenDao是一款优秀的Android ORM框架。相比其他框架GreenDao有着使用方便,效率高的特点。这里关于GreenDao的详细介绍和性能对比这里我们不讨论,毕竟到处都是。本文这里权当GreenDao使用入门,当然你也可以自己通过Android自带API从头到尾写数据库创建语句,写增删改查DAO。另外DbFlow也是很容易入门的,客官也可以去了解一下。



  1. 配置GreenDao
    这里写图片描述
    这里写图片描述

  2. 初始化GreenDao

public class MyAPP extends Application {
    private static DaoSession daoSession;
    private static DaoMaster daoMaster;

    @Override
    public void onCreate() {
        super.onCreate();
        initDbMaster();
    }

    private void initDbMaster() {
        DaoMaster.DevOpenHelper test_userhelp = new DaoMaster.DevOpenHelper(this, "test_userhelp");
        SQLiteDatabase writableDatabase = test_userhelp.getWritableDatabase();
        daoMaster = new DaoMaster(writableDatabase);
        daoSession = daoMaster.newSession();
    }

    public static DaoSession getDbSession(){
        if(daoSession != null) {
            return daoSession;
        }
        return null;
    }


    public static DaoMaster getDaoMaster(){
        if(daoMaster != null){
            return daoMaster;
        }
        return null;
    }
}
  1. 使用GreenDao
@Entity(nameInDb = "TEST_USER")
public class User {

    //id为主键自增

    @Id(autoincrement = true)
    private Long id;
    @Property(nameInDb = "NAME")
    private String userName;
    private Integer age;
    private String addr;
}


private UserDao userDao;
    private int count;
    private TextView tb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button addb = (Button) findViewById(R.id.btn_greendao);
        Button qb = (Button) findViewById(R.id.btn_greendao_query);
        tb = (TextView) findViewById(R.id.tv_helloword);
        addb.setOnClickListener(this);
        qb.setOnClickListener(this);
        count =1;
        userDao = MyAPP.getDbSession().getUserDao();
    }

    private long insert() {
        return userDao.insert(new User(null, "nikon"+count++, 30, "liuyang"));
    }

    private ArrayList<String> getUserFromDb(UserDao dao) {
        ArrayList<String> names = new ArrayList<>();
        List<User> users = dao.loadAll();
        for(User u : users){
            String userName = u.getUserName();
            names.add(userName);
        }
        return names;
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_greendao:
                long insert = insert();
                Toast.makeText(MainActivity.this, "插入结果"+insert, Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_greendao_query:
                ArrayList<String> userFromDb = getUserFromDb(userDao);
                Toast.makeText(MainActivity.this, "查询结果"+userFromDb.toString(), Toast.LENGTH_SHORT).show();
                tb.setText(userFromDb.toString());
                break;
            default:
                break;
        }
    }

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的兄弟叫顺溜2011

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值