Android 简单使用 GreenDao3.0

GreenDao的使用

 1、在project的build.grade文件中添加如下依赖

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

 2、在app的build.grade文件中添加如下依赖

     compile 'org.greenrobot:greendao:3.0.1'
     compile 'org.greenrobot:greendao-generator:3.0.0'

3、在app的build.gradle文件中声明greendao的路径、版本、名称的设置

     greendao {
    schemaVersion 1
    daoPackage 'com.zty.greendao.gen'
    targetGenDir 'src/main/java'
    }

4、在app的build.gradle文件中顶部添加

    apply plugin: 'org.greenrobot.greendao'

5、创建实体类

@Entity
public class Equip implements java.io.Serializable {
    @Id
    @Property(nameInDb = "EQUIP_ID")
    private Long equipId;

    private Long roomId;

    private Integer organId;
    private Integer equipTypeId;

    private String cardNo;

    private String equipName;

    private String equipSpecify;

    private String equipBrand;

    private Integer count;

    private String assetCode;

    private Integer assetTypeId;

    private String assetSource;

    private Long userId;

    private String userName;

    private String remark;
    @Transient
    private Integer newDataFlag;

}

6、创建完实体类后点击android studio中的如下图标

7、点击如上图标后会生成如下几个代码

8、以下我们将在Application配置数据库的一些参数就可以使用了

private DbManager manager;
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
@Override    public void onCreate() {
    super.onCreate();
    
    setDatabase();

 }

private void setDatabase() {
    manager=new DbManager(this, "collect-db");
    db = manager.getWritableDatabase();
    // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
    mDaoMaster = new DaoMaster(db);
    mDaoSession = mDaoMaster.newSession();

}
public static MyApplication getInstances(){
    return instances;

}

public DaoSession getDaoSession() {
    return mDaoSession;
}

9、配置好后我们可以按下面方法调用

 

 DaoSession daoSession= MyApplication.getInstances().getDaoSession();
List<Equip> equips=daoSession.getEquipDao().queryBuilder().where(EquipDao.Properties.RoomId.eq(roomId))
.list();

至此最简单的数据库查询已经完成

10、部分数据库查询代码如下

public class DataUtil {
    private static String root= Environment.getExternalStorageDirectory().getPath();
    private static DaoSession daoSession= MyApplication.getInstances().getDaoSession();

    /**
     * 根据设备获取图片
     * @param context
     * @param organId
     * @param equipId
     * @return
     */
    public static List<Map<String,Object>> getImageByEquipId(Context context, Long organId, Long equipId) {
        //根据 organId 为目录 每个学校有个文件目录
        List list=new ArrayList();
        List<Attachment> attachments=daoSession.getAttachmentDao().queryBuilder().where(AttachmentDao.Properties.BizId.eq(equipId)).list();
        for (Attachment attachment:attachments){
            HashMap map=new HashMap();
            File file=getSchoolPathByOrganId(organId,attachment.getFileName());
            //文件地址
            map.put("url",file.getPath());
            map.put("view",new ImageView(context));
            list.add(map);

        }
        return list;
    }

    /**
     * 根据模板设备id获取模板图片
     * @param context
     * @param modelEquipId
     * @return
     */
    public static List<Map<String,Object>> getImageByModelEquipId(Context context, Long modelEquipId) {
        //根据 organId 为目录 每个学校有个文件目录
        List list=new ArrayList();
        List<ModelEquipAttachMent> modelEquipAttachMents=daoSession.getModelEquipAttachMentDao()
                .queryBuilder().where(ModelEquipAttachMentDao.Properties.ModelEquipId.eq(modelEquipId)).list();
        for (ModelEquipAttachMent ModelEquipAttachMent:modelEquipAttachMents){
            HashMap map=new HashMap();
            File file=getSchoolPathByModel("model",ModelEquipAttachMent.getFileName());
            //文件地址
            map.put("url",file.getPath());
            map.put("view",new ImageView(context));
            list.add(map);
        }
        return list;
    }

    /**
     * 根据学校id获取学校路径
     * @param organId
     * @param fileName
     * @return
     */
    public static File getSchoolPathByOrganId(Long organId, String fileName) {
        File dir=new File(root,MyApplication.getInstances().getPrjName());
        File schoolDir=new File(dir.getPath(),organId+"");
        if(!schoolDir.exists()){
            schoolDir.mkdirs();
        }
        File file=new File(schoolDir.getPath(),fileName);
        return file;
    }

    /**
     * 根据学校id获取学校目录
     * @param organId
     * @return
     */
    public static File getSchoolPathByOrganIdDir(Long organId) {
        File dir=new File(root,MyApplication.getInstances().getPrjName());
        File schoolDir=new File(dir.getPath(),organId+"");
        if(!schoolDir.exists()){
            schoolDir.mkdirs();
        }
        return schoolDir;
    }
    public static File getCompressFile() {
        File dir=new File(root,MyApplication.getInstances().getPrjName());
        File compressDir=new File(dir.getPath(),"compress");
        return compressDir;
    }
    private static File getSchoolPathByModel(String model, String fileName) {
        File dir=new File(root,MyApplication.getInstances().getPrjName());
        File schoolDir=new File(dir.getPath(),model+"");
        if(!schoolDir.exists())
            schoolDir.mkdirs();
        File file=new File(schoolDir.getPath(),fileName);
        return file;
    }
    public static List<SortModel> getSchoolData(Context context) {
        List<SortModel> mSortList=new ArrayList<>();
        List<Organ> organs=daoSession.getOrganDao().queryBuilder().list();
        Log.i("ggg","getSchoolData size="+organs.size());
        for (int i = 0; i < organs.size(); i++) {
            SortModel sortModel = new SortModel();
            sortModel.setName(organs.get(i).getOrganName());
            sortModel.setBizId(organs.get(i).getOrganId());
            //汉字转换成拼音
            String pinyin = PinyinUtils.getPingYin(organs.get(i).getOrganName());
            String sortString = pinyin.substring(0, 1).toUpperCase();

            // 正则表达式,判断首字母是否是英文字母
            if (sortString.matches("[A-Z]")) {
                sortModel.setLetters(sortString.toUpperCase());
            } else {
                sortModel.setLetters("#");
            }

            mSortList.add(sortModel);
        }

        return mSortList;
    }

    public static List<SortModel> getRoomData(RoomActivity roomActivity, Long organId, String inventoryStatus,Long blockId,Integer cnt) {
        List<SortModel> mSortList=new ArrayList<>();
        List<Room> rooms=null;
        if("".equals(inventoryStatus)){
             rooms=daoSession.getRoomDao().queryBuilder()
                    .where(RoomDao.Properties.OrganId.eq(organId))
                     .where(RoomDao.Properties.BlockId.eq(blockId))
  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值