Android greenDao sessions详解

DaoSession类是greenDao的核心接口之一。DaoSession给开发者提供了entity操作的基本方法,以及Dao提供的一系列复杂方法。Sessions也用来管理实体的identity scope。

DaoMaster and DaoSession

正如greenDao使用快速入门所示,你需要创建一个DaoMaster来获取DaoSession。

需要注意的是,Database connection是属于DaoMaster的,因此多个session是引用的同一个数据库连接。新的session创建非常快,然而,每一个session都需要分配内存。

Identity scope and session cache

如果两个查询返回同一个数据库记录,那么有多少个java对象呢;一个还是两个?这取决于identity scope。greenDao多个查询默认只返回同一个java对象。例如,查询从USER表中查询ID=42的记录,每一次查询结果都应该是同一个Java object。 缓存对象(caching entities)也会带来副作用。如果一个entity仍在内存中(greenDao使用的是weak references),那么这个entity对象和数据库中的最新的记录将会不一致。

例如,用ID来加载一个entity对象将会得到以前加载过的entity,greenDao不需要查询数据库。它将从session cache中立即返回entity对象,将会获得一到两个数量级的性能提升。

总结

这个文档在将来还会继续补充。现在请先了解Hibernate的session以此来了解session和identity scopyes的概念



  copyright@黑月神话,转载请注明出处:vjson.com

Android greenDao sessions详解》上有1条评论

发表评论