https://github.com/greenrobot/greenDAO

下载下官网的示例,有完整的封装版本,但自已封装是碰到很多问题。

因greenDao的Master和Session中很多方法完全是隐藏的,只属于此类。

很多信息也是隐藏的。

只能基于继承此两类来实现(像官网示例一样)

想通过公有方法来实现最基本的一个demo也碰到很多坑。

这是示例

     Master.DevOpenHelper dbhelp=new Master.DevOpenHelper(this,"dbname",null);
SQLiteDatabase db=dbhelp.getWritableDatabase();
DaoConfig dc=new DaoConfig(db,BaiduUserDao.class);
BaiduUserDao dao=new BaiduUserDao(dc);
BaiduUser baiduUser=new BaiduUser(null,"tel","name1","pwd","mail");
dao.insert(baiduUser);

有两个坑

一:

BaiduUserDao类必须设置 TABLENAME静态属性
public static final String TABLENAME = "BaiduUser";
不然会报错
java.lang.NoSuchFieldException: TABLENAME

二必须设置Properties静态内部类
public static class Properties {
public final static Property Id = new Property(0, Long.class, "id", true, "_id");
public final static Property Tel = new Property(1, String.class, "telphone", false, "Tel");
public final static Property UserName = new Property(2, String.class, "username", false, "UserName");
public final static Property Email = new Property(3, String.class, "password", false, "Email");
public final static Property PassWord = new Property(4, String.class, "email", false, "PassWord");
};
不然会报错
java.lang.ClassNotFoundException: com.mac.cdp.androidbaidusign.dao.BaiduUserDao$Properties

好在有异常信息提示,不然类内部没有限制,也没有明显的说明。
但也可以理解,限制到构造里,太浪费了,而静态方法更省字段。 …… 我还是照着git上示例的测试代码,通过继承session和master来吧。 我也真是没事找事 想不按官网的路子封装几个工具类,发觉无路可走,只能按他的路子来 session 的registerDao 方法
master 的registerDaoClass 方法
都只能在子类中调用。不提供public方法,只能在子类实现中调用,或套一层public个方法。 这两个的设计逻辑不好。
访问同一个类,要先在master注册daoclass 再在session注册model和dal的关联。
要分两部,应该
放在一处会更好。 经试,确实可以只注调用session的registerDao
完全可以无视
master  的registerDaoClass 方法

android greendao的外部封装不太友好。的更多相关文章

  1. Android GreenDao操作外部DB数据库文件

    1.背景 所谓外部数据库文件此处指的就是一个在外部单独创建的db文件,假设有这么一个场景,我们项目中有一些本地数据,不需要接口去获取的(不需要进行网络操作),写死的数据,比如全国各个省各个市的一些基本 ...

  2. Android Studio 导入外部lib文件

    Android Studio 导入外部lib文件   1.将jar包放入Module里的lib文件夹中.(自己创建lib文件夹) 2.在project选中jar包点击右键"Add as li ...

  3. [Android] Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据

    Android GreenDao 保存 JavaBean 或者List <JavaBean>类型数据 简介 数据库存储数据基本上每个APP都有用到,GreenDAO 是一个将对象映射到 S ...

  4. Android所有Demo资源汇总,太全了(申明:来源于网络)

    Android所有Demo资源汇总,太全了(申明:来源于网络) 地址:http://bbs.csdn.net/topics/391928947

  5. android studio 调试技巧(简直太好用)

    android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...

  6. Android greenDao的简单配置和使用

    最近自学做东西的时候用到了一个收藏的功能,然后我想把东西存放到SQLite当中,然而自己传值的时候都是用到的实体类,所以存起来也比较麻烦,所以从网上找到一个greenDao的开源框架非常火,不仅效率高 ...

  7. Android GreenDao使用教程

    1.在build.gradle里添加相关依赖 apply plugin: 'org.greenrobot.greendao' buildscript { repositories { mavenCen ...

  8. Android GreenDao 在组件化项目中的一个问题 - 2018年7月5日21:15:14

    组件化项目使用GreenDao时注意的事项: 1.要在组件化中的基础库(domain层)创建实体类: 2.如果sycn之后不能生产Dao文件,使用 Android Studio 的Gradle插件重新 ...

  9. 【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,而且在AVD中浏览sdcard的文件

    首先.实现这一切的大前提是.你的AVD安卓模拟器,在启动之前.有设置好sdcard的大小,例如以下图.同一时候,你的AVD安卓模拟器,要处于启动状态.否则无法运行例如以下的操作. 这里以<[An ...

随机推荐

  1. Kerbernetes的Service资源管理

    Kerbernetes的Service资源管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Service概述 1>.为什么需要Service资源 我们知道在Kube ...

  2. JAVA初学者——算数运算符

    Hello!大家好,我是浩宇大熊猫,又是学习java的一天,开开森森~ 运算符:也就是对常量或者变量进行操作的符号 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式,不同的 ...

  3. AES学习小结

    AES是基于数据块的加密方式,即每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度. AES支持五种模式:CBC,C ...

  4. Java--Runtime.addShutdownHook

    转自:http://kim-miao.iteye.com/blog/1662550 一.Runtime.addShutdownHook理解 在看别人的代码时,发现其中有这个方法,便顺便梳理一下. vo ...

  5. 新年在家学java之基础篇-高级类的特性

    继承 extends 子类的共性代码都是继承自父类的,每个子类只要写自己特有的代码 class 子类 extends 父类 继承提高了代码的复用性,提供了多态的前提,但是不要为了某个功能去继承 子类不 ...

  6. 93.QuerySet转换为SQL的条件:迭代,切片(指定步长),len函数,list函数,判断

    生成一个QuerySet对象并不会马上转换为SQL语句去执行. books = Book.objects.filter(pk=3) print(connection.queries) 打印出djang ...

  7. Mac 终端实现快速定位命令 自动补全目录

    基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...

  8. selector.xml的使用

    TextView: <TextView android:id="@+id/resetfragment_btn" app:layout_constraintTop_toBott ...

  9. Linux常见指令x-mind

  10. Review For Exam

    Review For Exam [2019 福建省赛] 一个很简单的状态压缩DP,结果集体走偏 如何解决连续几日的限制问题?这种东西普通的DP很难写 #include <bits/stdc++. ...