锁定老帖子 主题:MyBatis3新手上路
精华帖 (0) :: 良好帖 (2) :: 新手帖 (7) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-18
恩,看了这个贴子后觉得确实是新手上路啊.呵呵.....投新手贴是有原因的,至少我也会.就我的角度出发,说几点:
1.首先搂主给出的例子和代码明显是ibatis的风格.并不是mybatis.因为mybatis已经不建议使用DAO类(虽然楼主例子的名字叫mapper)了,而是Mapper接口.所以看到extends SqlSessionDaoSupport感到很怪,因为是在介绍Mybatis. 2.ibatis和mybatis在xml的映射配置变化很大,这也是mybatis区别与ibatis的重要特点之一.比如:1对1,1对多,解决N+1,多条件判断. 楼主的例子(最简单的select)一个都没涉及到,都是ibatis风格,所以没有mybatis特点. 3.我没用过spring,不知道spring是怎么管理session的. Mybatis明确指出每次操作要对session进行处理,但是又没有看到. 4.Mybatis对annotation支持.虽然我个人不是很喜欢这个,很乱.但是如果楼主把例子弄成 @Select ...... 至少也看到了mybatis的特点.(毕竟一个都没有嘛...) 综上所述,感觉是在介绍ibatis,不是mybatis. |
|
返回顶楼 | |
发表时间:2011-05-18
beitongmoming 写道 恩,看了这个贴子后觉得确实是新手上路啊.呵呵.....投新手贴是有原因的,至少我也会.就我的角度出发,说几点:
1.首先搂主给出的例子和代码明显是ibatis的风格.并不是mybatis.因为mybatis已经不建议使用DAO类(虽然楼主例子的名字叫mapper)了,而是Mapper接口.所以看到extends SqlSessionDaoSupport感到很怪,因为是在介绍Mybatis. 2.ibatis和mybatis在xml的映射配置变化很大,这也是mybatis区别与ibatis的重要特点之一.比如:1对1,1对多,解决N+1,多条件判断. 楼主的例子(最简单的select)一个都没涉及到,都是ibatis风格,所以没有mybatis特点. 3.我没用过spring,不知道spring是怎么管理session的. Mybatis明确指出每次操作要对session进行处理,但是又没有看到. 4.Mybatis对annotation支持.虽然我个人不是很喜欢这个,很乱.但是如果楼主把例子弄成 @Select ...... 至少也看到了mybatis的特点.(毕竟一个都没有嘛...) 综上所述,感觉是在介绍ibatis,不是mybatis. 呵呵 有道理啊。 本文主要还是偏向配置MyBatis的,而且确实有很多ibatis的风格,比如继承了SqlSessionDaoSupport。 至于MyBatis的新特性,呵呵,我本想就写个10 Minute Tutorial的。 And我也是MyBatis的新手,所以写出来也是让大家帮忙看有哪些误区、盲点神马的。 总之,很感谢你的批评和建议吧。 |
|
返回顶楼 | |
发表时间:2011-05-18
能否贴下代码,共享下。
我的配置如果SQL语句出错控制台连异常信息都不输出,只有JSP页面有异常。 Mr.Chris 写道 andy20050125 写道 楼主有没有配置过myBatis 的log4j 文件?
纠结了很长时间,没弄出来,报错时不显示SQL 刚才试了一下,是OK的,我的依赖包是: <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.15</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency> log4j.properties # Rules reminder: # DEBUG < INFO < WARN < ERROR < FATAL # Global logging configuration log4j.rootLogger=INFO, stdout ## Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %5p %C: %m%n log4j.logger.org.apache.ibatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG |
|
返回顶楼 | |
发表时间:2011-05-18
最后修改:2011-05-18
我感觉在看2X,没看到3X的一个新特性,看看官方的文档吧。
|
|
返回顶楼 | |
发表时间:2011-05-18
andy20050125 写道 能否贴下代码,共享下。
我的配置如果SQL语句出错控制台连异常信息都不输出,只有JSP页面有异常。 刚看了下MyBatis的日志结构,如果要输出执行的sql(Executing SQL),只要做到在log4j.xml/log4j.properties里有 java.sql.PreparedStatement的logger配置并且保证log4j.xml/log4j.properties在classpath下即可。 可以参看下PreparedStatementLogger这个类,这个类代理了PreparedStatement,并且在execute、executeUpdate、executeQuery等方法执行前,输出executing sql的。 |
|
返回顶楼 | |
发表时间:2011-05-18
当初学习iBatis就是冲着它的动态SQL去的,但在实际的应用过程中却不如意,后来没办法,自己用velocity+dom4j写了一个动态SQL类(当然有些地方仿ibatis,如include、dynamic等),在项目中更加的灵活,对有些东西也不要太迷信了,当然,好的东西是要吸收的。
|
|
返回顶楼 | |
发表时间:2011-05-19
复杂结果集 无法实现sql级别的分页,只能通过在全部记录集里分页
相当的被催 |
|
返回顶楼 | |
发表时间:2011-05-19
有个问题请教下:同一项目中MyBatis与ibatis能否共存??
|
|
返回顶楼 | |
发表时间:2011-05-19
zhongji 写道 有个问题请教下:同一项目中MyBatis与ibatis能否共存??
有必要么? |
|
返回顶楼 | |
发表时间:2011-05-23
Mr.Chris 写道 zhongji 写道 有个问题请教下:同一项目中MyBatis与ibatis能否共存??
有必要么? 项目前一段时间用ibatis,后续的开发可否用mybatis? |
|
返回顶楼 | |