`
iwindyforest
  • 浏览: 235167 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MyBatis(3.2.7)的缺点

 
阅读更多

以下是我用MyBatis感觉不爽的地方, 当然也有可能是我不够了解, 如果有错误, 请指正

 

  • 不同命名空间的<resultMap><sql>等声明不能共享
  • 默认注册(org.apache.ibatis.type.TypeAliasRegistry)的类型别名太少, 比如想用Set但是没有注册
  • Configuraton XML默认不支持第三方Datasource, <dataSource>标签只能选择UNPOOLED , POOLED, JNDI
  • 缓存设置(比如mybatis-ehcache)无法指定缓存配置文件的位置,只能放在classpath根目录下
  • 缓存还是跟Hibernate一样, 造成数据改变的所有操作都会让命名空间的所有缓存清除, 不过这个也没办法, 毕竟作为框架, MyBatis并不知道更新的数据会影响到哪些缓存.
  • 代码注释太少, 太多的方法都没有注释, 如果一个应用没有注释倒是可以理解毕竟只是少数人维护, 最为一个框架, 注释太少让人看起来就吃力了就会阻碍这个框架的发展.
  • 最后一点, 其实真的没有像官方说的那样同JDBC比较会省去95%的代码量. 如果没有用生成器(也不好用), mapper xml, mapper java, 对应的service, service impl都要写代码量还是不少的.

 

比较好的就是那个动态SQL功能还不错, 如果不同空间的<resultMap><sql>能重用的话就好了, 毕竟有些查询时需要用到多个表的, 但也不方便把多个表的操作都写到一个mapper文件里, 不能重用就导致很多定义是重复的.

 

 

 

 

0
2
分享到:
评论
9 楼 iwindyforest 2014-05-22  
iwindyforest 写道
iwindyforest 写道
撒哈一拉威 写道
奉劝楼主有空看看官方文档和别人总结的经验吧,别闭门造车了。对于一个新手来说最忌讳的就是一叶障目。

呵呵 , 打嘴架, 喷人, 很容易,
有意见那能信服人的代码, 文档, 说话.
官方文档:
1. 关于DataSource
http://mybatis.github.io/mybatis-3/configuration.html#environments
如何支持第三方, 我今天的post:
http://ivarchen.iteye.com/blog/2069522
2.关于缓存的设置:
http://mybatis.github.io/ehcache-cache/index.html
Users that need to configure Ehcache through XML configuration file, have to put in the classpath the /ehcache.xml resource. Please refer to the official Ehcache documentation to know more details.
org.mybatis.caches.ehcache.EhcacheCache源代码
 private static final CacheManager CACHE_MANAGER = CacheManager.create();

别有事没事秀优越感, 那样只会显示你的肤浅.


Datasoure支持第三方?

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	  	<property name="dataSource" ref="dataSource"/>
	 	<property name="typeAliasesPackage" value="org.frame"/>
	 	<!-- 自动扫描映射文件 --> 
	  	<property name="mapperLocations" value="classpath:/org/frame/module/music/mapper/*Mapper.xml"/>
	</bean>

缓存只支持classpath根目录?
<diskStore path="java.io.tmpdir/ehcache" />

呵呵


你理解错了吧?
那个缓存的配置文件是这玩意?
<diskStore path="java.io.tmpdir/ehcache" />
还有原来可以用Spring来注入DataSource呀?
原来还有Spring这个东西来指定DataSource, 和缓存设置啊?
告诉我这跟MyBatis本身的设计有什么关系啊, 我的大婶?
8 楼 撒哈一拉威 2014-05-22  
iwindyforest 写道
撒哈一拉威 写道
奉劝楼主有空看看官方文档和别人总结的经验吧,别闭门造车了。对于一个新手来说最忌讳的就是一叶障目。

呵呵 , 打嘴架, 喷人, 很容易,
有意见那能信服人的代码, 文档, 说话.
官方文档:
1. 关于DataSource
http://mybatis.github.io/mybatis-3/configuration.html#environments
如何支持第三方, 我今天的post:
http://ivarchen.iteye.com/blog/2069522
2.关于缓存的设置:
http://mybatis.github.io/ehcache-cache/index.html
Users that need to configure Ehcache through XML configuration file, have to put in the classpath the /ehcache.xml resource. Please refer to the official Ehcache documentation to know more details.
org.mybatis.caches.ehcache.EhcacheCache源代码
 private static final CacheManager CACHE_MANAGER = CacheManager.create();

别有事没事秀优越感, 那样只会显示你的肤浅.


Datasoure支持第三方?

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	  	<property name="dataSource" ref="dataSource"/>
	 	<property name="typeAliasesPackage" value="org.frame"/>
	 	<!-- 自动扫描映射文件 --> 
	  	<property name="mapperLocations" value="classpath:/org/frame/module/music/mapper/*Mapper.xml"/>
	</bean>

缓存只支持classpath根目录?
<diskStore path="java.io.tmpdir/ehcache" />

呵呵
7 楼 iwindyforest 2014-05-22  
撒哈一拉威 写道
奉劝楼主有空看看官方文档和别人总结的经验吧,别闭门造车了。对于一个新手来说最忌讳的就是一叶障目。

呵呵 , 打嘴架, 喷人, 很容易,
有意见那能信服人的代码, 文档, 说话.
官方文档:
1. 关于DataSource
http://mybatis.github.io/mybatis-3/configuration.html#environments
如何支持第三方, 我今天的post:
http://ivarchen.iteye.com/blog/2069522
2.关于缓存的设置:
http://mybatis.github.io/ehcache-cache/index.html
Users that need to configure Ehcache through XML configuration file, have to put in the classpath the /ehcache.xml resource. Please refer to the official Ehcache documentation to know more details.
org.mybatis.caches.ehcache.EhcacheCache源代码
 private static final CacheManager CACHE_MANAGER = CacheManager.create();

别有事没事秀优越感, 那样只会显示你的肤浅.
6 楼 iwindyforest 2014-05-22  
撒哈一拉威 写道
奉劝楼主有空看看官方文档和别人总结的经验吧,别闭门造车了。对于一个新手来说最忌讳的就是一叶障目。

呵呵
5 楼 iwindyforest 2014-05-22  
撒哈一拉威 写道
呵呵、感觉这是黑mybatis的节奏啊,你说的这些什么datasource不支持第三方,缓存如今只能是根目录啊,纯属扯淡!昨天还把mybatis和springmvc搞到一起了一遍,我可以很负责的告诉你这问题完全不存在!

谢谢, 我说过datasource不支持第三方吗,你没看到前面"默认"那两个字?
我说过结合Spring的缓存不能指定目录吗?
4 楼 撒哈一拉威 2014-05-22  
奉劝楼主有空看看官方文档和别人总结的经验吧,别闭门造车了。对于一个新手来说最忌讳的就是一叶障目。
3 楼 撒哈一拉威 2014-05-22  
呵呵、感觉这是黑mybatis的节奏啊,你说的这些什么datasource不支持第三方,缓存如今只能是根目录啊,纯属扯淡!昨天还把mybatis和springmvc搞到一起了一遍,我可以很负责的告诉你这问题完全不存在!
2 楼 iwindyforest 2014-05-22  
nalan 写道
"同JDBC比较会省去95%的代码量",并没有夸张,mybatis和jdbc相比封装了数据库连接、异常处理、结果集提取以及转换成Bean,差不多是可以节约95%的代码,至于service, service impl跟mybatis有关系吗?

如果跟Spring JDBC Template比呢, 毕竟数据库连接、异常处理、结果集提取以及转换成Bean都是需要做成可重用的, 就算是不用Spring也是需要自己做成抽象实现的.
1 楼 nalan 2014-05-22  
"同JDBC比较会省去95%的代码量",并没有夸张,mybatis和jdbc相比封装了数据库连接、异常处理、结果集提取以及转换成Bean,差不多是可以节约95%的代码,至于service, service impl跟mybatis有关系吗?

相关推荐

    Mybatis3.2.7 使用Demo

    在本文中,我们将深入探讨Mybatis 3.2.7版本的使用方法,包括它的核心特性、配置过程以及如何通过实例来理解其工作原理。 Mybatis 的主要优势在于它将SQL语句与Java代码紧密结合,提供了比传统JDBC更高级的映射功能...

    MyBatis3.2.7离线包

    标题 "MyBatis3.2.7离线包" 提供了我们主要关注的两个核心组件:MyBatis 3.2.7 和 MySQL 数据库连接器。这个压缩包是针对Java开发者的,特别是那些使用J2EE(Java 2 Platform, Enterprise Edition)框架进行企业级...

    MyBatis3.2.7

    在"MyBatis3.2.7"版本中,这个压缩包包含了MyBatis框架运行所需的一系列jar包。对于Java开发人员来说,尤其是企业级应用开发者,这些jar包是构建基于MyBatis的项目所必不可少的。以下是对MyBatis3.2.7主要特性和功能...

    mybatis3.2.7

    mybatis3.2.7的包,本人从官方下载,经测试可用,放在这方便大家下载。

    mybatis 3.2.7 的jar包及其src资源文件

    MyBatis 3.2.7 是一个流行的Java持久层框架,它简化了数据库操作,提供了灵活的SQL映射和对象关系映射功能。在这个压缩包中,包含的是MyBatis 3.2.7版本的jar包以及其源代码文件,这对于开发者深入理解框架的工作...

    mybatis 3.2.7 源码

    MyBatis 3.2.7 是一个流行的Java持久层框架,它允许开发者将SQL查询直接集成到Java代码中,提供了灵活的映射机制和强大的动态SQL支持。这个源码版本是MyBatis在2014年的一个稳定版本,为开发者提供了深入理解其内部...

    mybatis-3.2.7.jar-lib-source code API settings Timeout MyBatisDemo 常用例子

    mybatis-3.2.7.jar source code API configuration.xml settings defaultStatementTimeout 的设置 MyBatisDemo 常用例子 使用3种方法,编写mapper,操作数据库

    spring4.0.6+mybatis3.2.7整合比用包

    本文将详细解析"spring4.0.6+mybatis3.2.7整合包"的整合过程及其相关知识点。 首先,Spring 4.0.6是Spring框架的一个稳定版本,它提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,使得开发者能够更好地管理...

    mybatis3.2.7开发架包

    在3.2.7版本中,MyBatis提供了一系列强大的功能,使得数据库操作变得简单而直观。这个压缩包包含了MyBatis的核心组件,以及相关的库文件和文档,非常适合开发者进行MyBatis的学习和项目开发。 首先,`mybatis-3.2.7...

    mybatis-3.2.7.zip

    在"mybatis-3.2.7.zip"这个压缩包中,包含了MyBatis框架的3.2.7版本。这个版本的MyBatis提供了一系列的增强功能,使得开发者在处理数据库操作时更加便捷高效。以下是关于MyBatis 3.2.7的一些关键知识点: 1. **配置...

    myBatis3.2.7增删改查 源码

    标题 "myBatis3.2.7增删改查 源码" 指的是一个关于myBatis 3.2.7版本的数据库操作框架的源代码资源,主要涉及的是基本的CRUD(创建Create、读取Read、更新Update、删除Delete)功能的实现。myBatis是一个优秀的持久...

    MyBatis3.2.7和SpingMVC3.2.0

    【MyBatis3.2.7】 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,...

    spring4.2.5+mybatis3.2.7+tomcat 8.0+jdk1.8 SSM项目整合

    适合初学者下载,一看就懂,建议下载后查看resources文件夹下的txt中文文档,有本人在整合项目时碰到的一些问题,项目中有几个简单的小例子,代码仅有基本CRUD,没有完善,使用者可以自己尝试,就当做版本1.0吧

    mybatis 3.2.7核心包、依赖包、数据驱动包

    MyBatis 3.2.7 是一个流行的Java持久层框架,它简化了数据库操作,使得开发者能够将SQL语句直接映射到Java方法中,从而实现数据访问的便捷性。这个压缩包包含了MyBatis运行所必需的核心组件、依赖库和数据驱动包,...

    Struts2.3.16+Spring3.2.8+Mybatis3.2.7整合

    Struts2.3.16、Spring3.2.8和Mybatis3.2.7是Java Web开发中常用的三大框架,它们的整合是构建高效、灵活的企业级应用的重要步骤。下面将详细介绍这三个框架以及整合过程中的关键知识点。 **Struts2** 是一个基于MVC...

    mybatis-3.2.7 包含spring整合包

    `mybatis-3.2.7` 是 MyBatis 框架的一个版本,它包含了对 SQL 映射文件的解析、动态 SQL 生成以及与 Java 代码的无缝集成等功能。在这个版本中,你可以期待以下特性: 1. 动态 SQL:MyBatis 允许在 XML 或注解中...

    Spring4.05 Mybatis3.2.7 SpringMVC logback的maven配置demo

    在本项目中,我们主要探讨的是如何整合Spring 4.0.5、Mybatis 3.2.7、Spring MVC以及logback,并利用Maven进行构建和管理。这是一个典型的Java Web应用开发环境的配置示例,下面将详细介绍这些组件及其在项目中的...

    Struts2.3.6+MyBatis3.2.7+jasperreports 5.6.0+oracle 10g的集成实例

    Struts2.3.6+MyBatis3.2.7+jasperreports 5.6.0+Oracle 10g的集成实例涉及到的主要技术组件包括: 1. **Struts2.3.6**:这是一个基于MVC设计模式的Java Web框架,用于构建企业级的Web应用程序。它提供了一种灵活的...

    Springmvc4.0.6+mybatis3.2.7+velocity1.7+log4j2

    框架采用最流行技术springmvc4.0.6,和最流行持久层框架mybatis3.2.7,还有Velocity - 模板引擎,还有最新日志输出log4j2的配置并且分级别输出到不同文件, 感兴趣赶紧下载吧

Global site tag (gtag.js) - Google Analytics