您好,登录后才能下订单哦!
小编给大家分享一下MongoDB中orm框架的注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
首先spring自带了mongodb的orm,spring data mongodb,但是这个框架非常难用,最令人抓狂的是每个文档都要带一个 _class 字段,因为这个是string的,所以占用不少空间,而且去除也比较麻烦。故而使用 zfoo orm 框架
基于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 的高性能数据缓存
语法校验,如对没有加上get和set的字段自动语法提示
1. IAccessor接口,为数据访问接口
插入数据到数据库,会以对象的id()方法的返回值作为主键
OrmContext.getAccessor().insert(obj)
删除数据库中的数据,会以对象的id()方法的返回值作为查找关键字,删除以这个id()为主键的数据
OrmContext.getAccessor().delete(obj);
修改数据库中的数据
OrmContext.getAccessor().update(obj);
2. IQuery接口,为数据复杂查询接口
3. 缓存使用方法
例如有下列配置
<orm:config id="config" entity-package="com.zfoo.orm.**.entity"> <orm:host database="test" user="" password=""> <orm:address name="server0" url="127.0.0.1:27017"/> </orm:host> <!-- 缓存策略 --> <orm:caches> <orm:cache strategy="ten" size="10" expire-millisecond="600000"/> <orm:cache strategy="hundred" size="100" expire-millisecond="600000"/> <orm:cache strategy="thousand" size="1000" expire-millisecond="600000"/> <orm:cache strategy="threeThousand" size="3000" expire-millisecond="600000"/> <orm:cache strategy="tenThousand" size="10000" expire-millisecond="600000"/> </orm:caches> <!-- 持久化策略 --> <orm:persisters> <orm:persister strategy="cronDefault" type="cron" config="0,30 * * * * ?"/> <orm:persister strategy="cron3s" type="cron" config="0/3 * * * * ?"/> <orm:persister strategy="cron15s" type="cron" config="0/15 * * * * ?"/> <orm:persister strategy="cron30s" type="cron" config="0/30 * * * * ?"/> <orm:persister strategy="cron1m" type="cron" config="0 0/30 * * * ?"/> <orm:persister strategy="time30s" type="time" config="30000"/> </orm:persisters> </orm:config>
有下列注解
@EntityCaches(cacheStrategy = "tenThousand", persister = @Persister("time30s")) public class UserEntity implements IEntity<Long> { }
database表示操作哪个数据库
address表示数据库的地址,支持分片的配置
caches中的strategy表示一个缓存的策略,即将数据库中的数据先读入Orm中的EntityCaches缓存,如hundred这个策略表示,缓存数据库中1000条数据,10分钟过期
persisters中的strategy表示一个持久化的策略,如3s这个策略表示,将EntityCaches中的缓存数据每3s写入到数据库中一次,即使中途宕机,也只损失3秒的数据
EntityCaches这个注解表示将会被Orm管理,使用hundred策略,缓存的持久化策略为3s
test下中包含了所有增删改查的教程,运行之前请先安装MongoDB
以上是“MongoDB中orm框架的注意事项有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。