Android之greenDao的使用

greendao  简单来说 就是把数据库化作 对类的管理了  绕开了sql语句

既然是化作了对类的管理,那就要有实体类 和 管理类,

实体类和 管理类 最好提前用java工程生成。

所以

步骤一,类文件的生成 ,idea eclipse 创建个java工程就行。 // TODO android 单元测试没具体测试,估计也能行。

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

// libs里2个依赖包,别乱换,版本差距大了会导致编译失败。
public class Main {

    public static void main(String[] args) {
//        System.out.println("Hello World!");

	// 这里直接写成要用到的android工程的类名
	// 这样往android工程中移植的时候直接复制目录就行了
        Schema schema = new Schema(1,"com.slyoko.mymakedao.model");

	// 要添加几个表,照着写几个方法就行
        addContact(schema);
        addChatMsg(schema);

	// 还有写其他设置,没大用处,不写也行
        schema.setDefaultJavaPackageDao("com.slyoko.mymakedao.dao");

        try {
	    // 生成文件
            new DaoGenerator().generateAll(schema,"src");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void addContact(Schema schema) {
        Entity contact = schema.addEntity("Contact");// Contact类名默认就是表名

        contact.addIdProperty().autoincrement().primaryKey();
        contact.addLongProperty("memberid").notNull();
        contact.addLongProperty("contactid").notNull();
        contact.addStringProperty("email").notNull();
        contact.addStringProperty("name").notNull();
        contact.addStringProperty("headmid").notNull();
        contact.addStringProperty("headsmall").notNull();
        contact.addDateProperty("registetime").notNull();
        contact.addDateProperty("createtime").notNull();
        contact.addStringProperty("pinyin").notNull();
    }

    // 第二张表
    private static void addChatMsg(Schema schema) {
        Entity chat = schema.addEntity("ChatMsg");  // 添加新的表ChatMsg

        chat.addIdProperty().autoincrement().primaryKey();
        chat.addLongProperty("memberid").notNull();
        chat.addLongProperty("contactid").notNull();
        chat.addStringProperty("chatmsg").notNull();

        chat.addDateProperty("chattime").notNull();
        chat.addIntProperty("chattype").notNull();
        chat.addIntProperty("isreceive").notNull();
        chat.addIntProperty("status").notNull();
    }
}


步骤二,greendao在android中的应用

这个暂时不写了,方法在在下面链接里看。


参考资料:

http://blog.csdn.net/krislight/article/details/9391455   // 封装好,说封装来自官网建议,没看到这个建议,看来回头有时间了还要好好看看官网了

http://glblong.blog.51cto.com/3058613/1354953     // 增删改查,各种全

http://www.cnblogs.com/lechance/p/4373196.html      // 包含情况多

http://blog.csdn.net/h3c4lenovo/article/details/43566169    // 讲的也不少,就是感觉有点乱

http://blog.csdn.net/u012565107/article/details/21546829    //  一个对比测试例子

http://my.oschina.net/cheneywangc/blog/196354?fromerr=Nq8Yxt6S   // 官网的前几篇引导说明翻译过来大致也就是这个样子了


我的带jar包的java工程备份源码:xxxxx     等审核过了再说。


// TODO 

1、好好看官网

2、整个实际例子把 步骤二 补上


2016/01/01更新:

http://blog.csdn.net/krislight/article/details/9391455    android工程里 BaseApplication封装有问题。

daoMaster是从外部set get获取的。存在程序意外结束返回空指针的情况。

最好是直接在onCreate里初始化了,否则 写成static也不是很保险。

这个是在看文章《不要在Android的Application对象中缓存数据!》想到的,

文章链接:http://www.jianshu.com/p/83f0046bc310

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值