GreenDao 的简单配置与使用

配置 插件与依赖

项目下

-----------在repositories的括号里加入仓库----
mavenCentral()

------------- 在dependencies的括号里加入插件---------

classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

---------------在app 里的Build最上面---------------------

apply plugin: 'org.greenrobot.greendao' 

----------------app 里的Build加依赖----------------------

implementation 'org.greenrobot:greendao:3.2.2'

----------------在dependencies的上面-----------

greendao {
schemaVersion 1  //版本
daoPackage '包名.greendao' // 一般为app包名+生成文件的文件夹名
targetGenDir 'src/main/java' //生成文件路径
}

写一个 Bean

注解 需要写上 写完之后 摁Ctrl+Fn+F9自动生成Dao

@Entity
public class GBean {
@Id(autoincrement = true)//主键自增
private Long id;

生成后的文件

在这里插入图片描述

自己写一个工具类 用于增删改查

public class SqliteUtiles {
private SQLiteDatabase db;
private DaoMaster daoMaster;
private DaoSession daoSession;

//单例  要一个私有构造 和一个公共静态有参
private SqliteUtiles() {
}
private static SqliteUtiles sqliteUtiles;
public static SqliteUtiles getSqliteUtiles() {
    //判断是否为空
    if (sqliteUtiles == null) {
        sqliteUtiles = new SqliteUtiles();
    }
    return sqliteUtiles;
}
//初始化数据库   传上下文
public void init(Context context){
    //new  DaoMaster 的Dev方法 传上下文 数据库名称  返回一个帮助类
    DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "g1");
    //获取写数据的db
      db = helper.getWritableDatabase();
      daoMaster = new DaoMaster(db);//控制类
      daoSession = daoMaster.newSession();//初始化协议
}
//增
public void insert(User user){
    //直接使用daoSession获取userdao  调用里面的insert
    daoSession.getUserDao().insert(user);
}

//查全部
public List<User> chaAll(){
    //查询全部
    return daoSession.getUserDao().loadAll();
}
//单个查询
public User chaid(String key){
    //传主键Long对象
    return daoSession.getUserDao().load(Long.parseLong(key));
}
//单个删除
public void delid(String key){
 daoSession.getUserDao().deleteByKey(Long.parseLong(key));
}
//删除全部
public void delAll(){
  daoSession.getUserDao().deleteAll();
}
//修改
public void gai(User user){
    daoSession.getUserDao().update(user);
}
}

使用该工具类

首先在用的页面初始化工具类 一定要

 	   SqliteUtiles.getSqliteUtiles().init(this);

这里用几个按钮演示增删改查

 @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.zeng://直接调用工具类里的 添加方法
            User user = new User();
            user.setAge(18);
            user.setName("高XX");
            user.setPsd("2452");
            user.setSex("男");
            SqliteUtiles.getSqliteUtiles().insert(user);
            break;
        case R.id.cha://查询
            List<User> cha = SqliteUtiles.getSqliteUtiles().chaAll();
            for (int i = 0; i < cha.size(); i++) {
                Log.i("MainActivity", cha.get(i).getName()+"id:"+cha.get(i).getId()+"性别:"+cha.get(i).getSex()+"密码:"+cha.get(i).getPsd()+"年龄:"+cha.get(i).getAge());
            }
            break;
        case R.id.chaid:
            //里面 穿key
            User chaid = SqliteUtiles.getSqliteUtiles().chaid("2");
            Log.i("MainActivity", "id:" + chaid.getId() + "名字:" + chaid.getName());
            break;
        case R.id.del:
            //删全部
        SqliteUtiles.getSqliteUtiles().delAll();
            break;
        case R.id.delid:
        //删除单个
            SqliteUtiles.getSqliteUtiles().delid("1");

            break;
        case R.id.gai:
            //修改之前先查询一条
            User usergai = SqliteUtiles.getSqliteUtiles().chaid("19");
            usergai.setId(Long.parseLong("19"));
            usergai.setSex("女");
            usergai.setName("马XX");
            usergai.setPsd("123456");
            SqliteUtiles.getSqliteUtiles().gai(usergai);
            break;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43143981/article/details/83745999
今日推荐