GreenDao简单配置使用

来源:互联网 发布:淘宝发布宝贝下架 编辑:程序博客网 时间:2024/06/04 19:45

当前开发的一个项目,需要用到本地数据库,之前没用到过,然而要求用GreenDao,无奈,只好学一下,并做一下记录。
先从配置开始。创建一个Demo来说明。
首先就是配置build.gradle(分Project和Module),两个都得配。。

首先配Project的gradle,如图,就一行:
这里写图片描述
然后配置Module的gradle,如图:
这里写图片描述
最后:

这里写图片描述
然后同步一下即可 这样,gradle就算配置完了

然后Application中初始化一些数据库配置,创建一个MyApplication

package com.example.lenovo.demo.activity;import android.app.Application;import android.database.sqlite.SQLiteDatabase;import com.example.lenovo.demo.dao.DaoMaster;import com.example.lenovo.demo.dao.DaoSession;/** * Created by lenovo on 2017/5/19. */public class MyApplication extends Application {    private DaoMaster.DevOpenHelper mHelper;    private SQLiteDatabase db;    private DaoMaster mDaoMaster;    private DaoSession mDaoSession;    public static MyApplication instances;    @Override    public void onCreate() {        super.onCreate();        instances = this;        setDatabase();    }    public static MyApplication getInstances(){        return instances;    }    private void setDatabase() {        // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。        // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。        // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。        // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。        mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);//notes-db为数据库的名字,可自定义        db = mHelper.getWritableDatabase();        // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。        mDaoMaster = new DaoMaster(db);        mDaoSession = mDaoMaster.newSession();    }    public DaoSession getDaoSession() {        return mDaoSession;    }    public SQLiteDatabase getDb() {        return db;    }}

————————————————————————————————————————————————————————————
简单使用:
1、创建表,其实就是将一个实体类中的各字段数据设置成表
比如:设置好属性后,rebuild一下工程,就会自动生成get set方法

package com.example.lenovo.demo.entity;import org.greenrobot.greendao.annotation.Entity;import org.greenrobot.greendao.annotation.Generated;import org.greenrobot.greendao.annotation.Unique;/** * Created by lenovo on 2017/5/19. */@Entitypublic class Person {    @Unique    private String name;    private int age;    private String sex;    private int salary;    @Generated(hash = 448501173)    public Person(String name, int age, String sex, int salary) {        this.name = name;        this.age = age;        this.sex = sex;        this.salary = salary;    }    @Generated(hash = 1024547259)    public Person() {    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public int getSalary() {        return this.salary;    }    public void setSalary(int salary) {        this.salary = salary;    }}

然后就可以对该表进行操作了,当然现在是空表,里面只有字段,只有默认数据,可以自行模拟增删改查,而且都是dao在操作整个表!
例如:先获取dao实例

PersonDao dao = MyApplication.getInstances().getDaoSession().getPersonDao();

然后增删改查等等
例:

 dao.insertOrReplace(person);//插入或更新(会判断实体是否重复,如果存在该实体,就会直接替换),前提:某属性设置了@unique,并且是按照该属性查出来的bean,当需要再次插入时,可以使用这个。 dao.insert(person);//插入,不会去判断实体是否重复 Person person = dao.queryBuilder().where(PersonDao.Properties.Name.eq("小明")).unique();//单条件查询单个实体 dao.queryBuilder().where(PersonDao.Properties.Name.eq("小明"),PersonDao.Properties.Age.eq(10)).unique();//多条件查询单个实体 dao.queryBuilder().where(PersonDao.Properties.Sex.eq(20)).list();//单条件查询列表,多条件同理。
dao.update(bean);//更新实体,前提:表中增加了
@Idprivate Long id;
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 节奏大师体力赠送关了打不开怎么办 微信钱包转账转错账号怎么办 激活微信账号电话号码输错了怎么办 爱思助手加强版下载不了软件怎么办 苹果手机用爱思助手游戏闪退怎么办 新买的手机号支付宝被注册了怎么办 王者荣耀以前领的东西忘记换怎么办 科目三停车时把油门踩成刹车怎么办 澳邮奶粉快递过程中破了怎么办 酷狗音乐里删除歌曲时卡住了怎么办 6d卡槽弹簧坏了怎么办 微信违规被限制登录不可解封怎么办 手机卡号挂失后支付宝的钱怎么办 支付宝绑定的卡已经挂失怎么办 支付宝挂失了还有钱没还怎么办 qq号被盗时在是找不回来怎么办 被盗qq通过申诉找不回来怎么办 手机丢了微信的登陆密码忘了怎么办 手机丢了微信钱包有钱怎么办 华为手机微信应用锁密码忘记怎么办 手机丢了微信红包有钱怎么办 手机换号了微信密码忘记怎么办 电脑的宽带连接被删了怎么办 彩票中奖但是彩票老板打错了怎么办 支付宝交手机费没有到账怎么办 支付宝借充电宝丢了怎么办 支付宝还信用卡还没有到账怎么办 支付宝冲话费充错了怎么办 支付宝充话费多久冲错了怎么办 支付宝付款成功商家没收到怎么办 qq钱包被冻结了微信怎么办 q币不小心充多了怎么办 u盘装系统就一个图标怎么办 淘宝买了东西退货客服不理人怎么办 微信10w限额满了怎么办 微信身份证实名认证超出限额怎么办 微信信用卡消费超过当日限额怎么办 淘宝客服同意退货卖家拒绝怎么办 微信钱包充值话费不到帐怎么办 京东买的显示器过保坏了怎么办 支付宝充话费充错号码是空号怎么办