### Ⅰ. 简介 - 基于MongoDB的orm框架,提供POJO对象和MongoDB数据库之间的映射 ### Ⅱ. 注意事项 - POJO对象的属性必须提供get和set方法,否则无法映射 - 不支持泛型 - 如果不想映射某属性,直接加上transient关键字 - 目前支持基本数据属性(byte,short,int,long,float,double,boolean),字符串String,List,Set集合属性的映射,不支持Map - 数据库主键能用整数尽量用整数,因为MongoDB默认的主键是一个字符串,比较占空间 - 数据库使用自研的orm框架,比如一个实体类UserEntity,映射到数据库中的集合为user,首字母小写,去掉Entity - 基于 [caffeine](https://github.com/ben-manes/caffeine) 的高性能数据缓存 - 语法校验,如对没有加上get和set的字段自动语法提示 ### Ⅲ. 使用方法 #### 1. IAccessor接口,为数据访问接口 - 插入数据到数据库,会以对象的id()方法的返回值作为主键 ``` OrmContext.getAccessor().insert(obj) ``` - 删除数据库中的数据,会以对象的id()方法的返回值作为查找关键字,删除以这个id()为主键的数据 ``` OrmContext.getAccessor().delete(obj); ``` - 修改数据库中的数据 ``` OrmContext.getAccessor().update(obj); ``` #### 2. IQuery接口,为数据复杂查询接口 #### 3. 缓存使用方法 - 例如有下列配置 ``` ``` - 有下列注解 ``` @EntityCaches(cacheStrategy = "tenThousand", persister = @Persister("time30s")) public class UserEntity implements IEntity { } ``` - database表示操作哪个数据库 - address表示数据库的地址,支持分片的配置 - caches中的strategy表示一个缓存的策略,即将数据库中的数据先读入Orm中的EntityCaches缓存,如hundred这个策略表示,缓存数据库中1000条数据,10分钟过期 - persisters中的strategy表示一个持久化的策略,如3s这个策略表示,将EntityCaches中的缓存数据每3s写入到数据库中一次,即使中途宕机,也只损失3秒的数据 - EntityCaches这个注解表示将会被Orm管理,使用hundred策略,缓存的持久化策略为3s ### Ⅳ. 教程 - test下中包含了所有增删改查的教程,运行之前请先安装MongoDB