Android GreenDao3.0操作数据库的使用

数据库在Android 开发中用的还是比较多用来存储数据,以前用过Android原生自带的数据库,这次打算用GreenDao3.0,前面一次项目也用过一次GreenDao3.0 好久了 忘记的差不多了 。

一:介绍一下GreenDao3.0的好处:

它是一个对象关系映射框架,它能提供一个接口去操作对象的方式去操作数据库,能够让你操作数据库变得简单,更加的方便。

响应速速快,内存占用少,库文件很小 ,小于100k,支持加密,简单易用的API

二:使用步骤:

1.在项目的工程下build.gradle引入,再同步一下工程

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

2.在module的build.gradle下引入,在同步工程

apply plugin: 'org.greenrobot.greendao'   //是一个插件

3.在dependencies下引入

compile 'org.greenrobot:greendao:3.0.1'

4.在android 闭包下引入

greendao {
    /**
     * 版本号
     */
    schemaVersion 1
    /**
     * greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
     */
    daoPackage 'wansun.visit.android.greendao.gen'
    /**
     * greenDao实体类包文件夹
     */
    targetGenDir 'src/main/java'
}

5.创建一个实体类 UserBean

/**
 * Created by User on 2019/6/5.
 */
@Entity
public class UserBean {
    @Id
    public Long id;
     public String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Generated(hash = 2024802960)
    public UserBean(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    @Generated(hash = 1203313951)
    public UserBean() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

注意以上步骤做完了,一定要编译一下项目,会发现在src/main/java 下面自动生成了一个文件件greendao.gen .如图所示:

   自动生成了3个文件夹

6.自定义一个application 初始化GreenDao3.0的相关配置 

/**
 * Created by User on 2019/5/15.
 */

public class LocklBleApplication extends Application {
    //提供全局的上下文环境
    public  static  Context  mContext;
    private DaoMaster.DevOpenHelper dbHelper;
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    prvivate static LockBleApplication;
    @Override
    public void onCreate() {
        super.onCreate();
        mContext=getApplicationContext();
        app=this;
        initDatabass();   //初始化的相关配置
    }
    public static Context getInstanceContext(){

        return mContext;
    }
public static LocklBleApplication getInstance(){
    return  app;
}
    private void initDatabass() {
        //这里之后会修改,关于升级数据库
        dbHelper = new DaoMaster.DevOpenHelper(this, "lockBle-db", null);
        db = dbHelper.getWritableDatabase();
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }


    public DaoSession getSession(){
        return mDaoSession;
    }
    public SQLiteDatabase getDb(){
        return db;
    }
}

7.接下来就是操作数据库,也就是CRUD  ,添加一条数据

/**
 * GreenDao3.0测试
 * Created by User on 2019/6/10.
 */

public class GreenDaoActivity extends BaseActivity {
    Button but_add,but_qury,but_delect;
    UserBeanDao dao;

    @Override
    public int getLayoutId() {
        return R.layout.activity_green_dao;
    }

    @Override
    public void initView() {
          dao = LocklBleApplication.getInstance().getSession().getUserBeanDao();
          but_add= (Button) findViewById(R.id.but_add);
           but_qury= (Button) findViewById(R.id.but_qury);
          but_delect= (Button) findViewById(R.id.but_delect);


    }

    @Override
    public void initEvent() {
        /**
         * 添加数据
         */
        but_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for (int i = 0; i < 5; i++) {  //插入5条数据
                    UserBean bean=new UserBean();
                    bean.setId((long) i);
                    bean.setName("张飞"+i);
                    dao.insert(bean);  //插入一条数据
                }


            }
        });
        /**
         * 查询数据
         */
        but_qury.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                List<UserBean> userBeen = dao.loadAll();  //查询全部数据
                for (UserBean us: userBeen ){
                    Log.d("TAG","查询数据"+us.getName());
                }

            }
        });
        /**
         * 删除数据
         *  删除数据的方法 1.全部删除实例    2.根据id  3.全部删除
         */
        but_delect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dao.deleteByKey((long) 0);  //根据id 删除 
                dao.deleteByKey((long) 1);
                dao.deleteByKey((long) 2);
                
            }
        });
    }

    @Override
    public void initData() {

    }
}

如图所示:添加了5条数据,删除3条,查出2条数据

 

猜你喜欢

转载自blog.csdn.net/beautifulYuan/article/details/90898879