码迷,mamicode.com
首页 > 移动开发 > 详细

基于注解的Mybatis mapper 接口注意事项

时间:2015-06-05 22:42:56      阅读:6848      评论:0      收藏:0      [点我收藏+]

标签:mybatis mapper 接口   注解的mybatis   

       基于注解的Mybatis mapper 接口功能没有mapper xml配置文件丰富,而且动态sql语句的灵活性不能和xml配置相比。

这里只说一下基于注解的动态sql注意事项:

  • Mybatis提供注解 @InsertProvider, @UpdateProvider,@DeleteProvider和 @SelectProvider来提供动态sql功能。

  • 提供动态sql的方法参数只有2种可能:无参数和一个参数。一个参数又分为2种情况:参数类型和mapper 接口方法参数相同,另一个就是Map<String,Object>类型参数。这也就是说,你的mapper接口方法参数很多很多,而Mybatis会把他们放到map里面。这样提供动态sql的方法中,可以从map里面获取。

  • 提供动态sql的方法和xml配置动态sql很大区别。提供动态sql的方法,大多是自己组装sql(Mybatis提供的org.apache.ibatis. jdbc.SQL 功能也是很有限制的),而xml配置的(mybatis有一套自己的动态sql语法)动态sql,Mybatis会解析,自己组装sql。

  • mapper 接口方法的参数如果有多个,需要@Param  注解(没有的话,Mybatis自动生成parm{i}等这样的名字),因为直到java8 通过开启编译参数-parameters ,反射才会得到参数名称,所以Mybaitis只有通过方法参数注解获得。Spring MVC里面的方法参数是通过字节码操作的。

  • 尽量用xml配置结合mapper 接口。

  • 如果是动态创建表功能,要用${},字符串直接替换,而不是用#{}(Mybatis用typeHandlers赋值取值)

  • 如果Mybatis对应的java类型和数据库类型没有对应的映射关系(取值赋值),就只能通过自己写typeHandlers,给Mybatis配置实现。例如java8 的新增的时间类型Mybatis现在还没支持。

  • 建议大家多读几遍英文版的Java Persistence with MyBatis 3

基于注解的Mybatis mapper 接口注意事项

标签:mybatis mapper 接口   注解的mybatis   

原文地址:http://blog.csdn.net/doctor_who2004/article/details/46381587

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!