GreenDao分析概括

1.介绍

第一篇How to get started ? 原文地址:http://greendao-orm.com/documentation/how-to-get-started/该教程会带你浏览一个简单的greenDao示例工程。地址:https://github.com/greenrobot/greenDAO ,该工程包含两个子工程:DaoExample(android project)和DaoExampleGenerator(java project)。

你可以clone到本地,运行或者直接在github上直接浏览。

greenDao是一个开源的ORM(对象关系映射)框架,故名思议,他很好的封装了object(对象)与数据库(SQLiteOpenHelper & SQLiteDatabse)之间的关系

这里主要涉及到四个类:DaoMaster.java,DaoSession.java,ObjectDao.java(这里的object可以是你抽象出来的任意对象),Object.java,很方便的是,这几个文件DaoGenerator都可以自动生成。其中,DaoMaster就是一个数据库的角色,DaoSession的数据库对话的角色,ObjectDao是表的角色,Object则是表中的数据的角色这样分析以后,通常是一个路径下,DaoGenerator生成了多个ObjectDao和Object文件,但是只有一个DaoMaster和DaoSession文件,就是一个数据库对应了多张表的结构。

对应生成的文件


2.分析

1).数据——Object,基本属性,setter & getter


2).表——objectDao,主要封装了对表的操作的接口,(创建,增删改查 and so on)



3.对话——DaoSession,一些配置信息,和要注册的内容



4.数据库——DaoMaster,自身数据库的初始化,以及Daosession实例的获取



3.实例

public class NoteActivity extends ListActivity {

    private SQLiteDatabase db;

    private EditText editText;

    private DaoMaster daoMaster;
    private DaoSession daoSession;
    private NoteDao noteDao;

    private Cursor cursor;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
        db = helper.getWritableDatabase(); //独立创建
        daoMaster = new DaoMaster(db);
        daoSession = daoMaster.newSession();
        noteDao = daoSession.getNoteDao();

        String textColumn = NoteDao.Properties.Text.columnName;
        String orderBy = textColumn + " COLLATE LOCALIZED ASC";
        cursor = db.query(noteDao.getTablename(), noteDao.getAllColumns(), null, null, null, null, orderBy);
        String[] from = { textColumn, NoteDao.Properties.Comment.columnName };
        int[] to = { android.R.id.text1, android.R.id.text2 };

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from,
                to);
        setListAdapter(adapter);

        editText = (EditText) findViewById(R.id.editTextNote);
        addUiListeners();
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值