mybatis缺点

目前在mybatis中有如下“坑”存在
 
(1)配置文件加载问题
配置文件A、B、C,当A引用B,B引用C时,一旦先加载A,就会异常;
mybatis不会根据引用关系去自动加载,引用的顺序需要开发手动注意。
 
(2)由于不是面向对象的,mybatis 属性——字段 类型傻傻分不清楚
由于mybatis是半自动化的,非完全面向对象,故在保存值时,如果直接 #{value} 可能会出现错误;
当对象属性为int,而数据库字段类型为varchar时,mybatis不会为该值自动带上'',就会出现异常,解决方案: #{value, jdbcType=VARCHAR};
 
值得注意的是,这种缺陷连查询都会受到影响,比如: value字段有索引,但是由于查询时所带属性为int,mybatis会有一个转换的过程,也就没有走索引了
就像用map带值,如果字段不标注类型的话,就很难走索引。
 
(3)缓存操作麻烦
mybatis缓存操作非常麻烦,或者说不好建立缓存;主要原因就是它不是面向对象的;
 
像Hibernate就会好很多,不但有一级缓存,还有二级缓存,还有查询缓存;
 
 
(4)mybatis数据查出来后,它会根据xml文件的配置将数据,转换成相应的类型,如果该数据为null,而属性为int或double 就会报错
 
 
 
 
posted @ 2017-05-16 01:37  朱俊销  阅读(1037)  评论(0编辑  收藏  举报