mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题
2015-09-24 09:53
381 查看
我们公司的项目使用spring+mybatis组合。所以就必须得使用mybatis-spring了。所以此处就昨日mybatis-spring从1.1升级到1.2所带来的dao层级的编写问题,做了一个总结。
我们可以先来看看mybatis-spring框架的1.1.1版本中关于SqlSessionDaoSupport的代码吧:
从上面的源码可以看出:在方法setSqlSessionFactory和setSqlSessionTemplate方法上面都标注有:“@Autowired(required = false)”这样的注解。
所以我们在编写dao层级代码的时候只需要dao直接继承SqlSessionDaoSupport,并标注注解@Repository,然后就可以使用类似的getSqlSession().selectList("User.selectUsers");这样的方法来使用它了,而且在spring的配置文件中的配置也比较少:
但是升级到1.2之后,我们看看SqlSessionDaoSupport的源代码:
从上面的源码可以看出:在方法setSqlSessionFactory和setSqlSessionTemplate方法上面现在都没有标注有:“@Autowired(required = false)”这样的注解。
如果一些系统直接从mybatis-spring1.1.1升级到1.2版本的时候,就会出现问题。
在1.2版本下面有几种方式来使用:
第一种,基于注解:
我们自己重写set方法就可以了。在这种情况下spring的配置文件不需要修改。这个实例是随意写的,如果你的工程中dao类很多(绝大多数情况都是),这样你就可以编写一个BaseDao,然后在这个BaseDao中重写这个方法,其他的dao只需要继承这个BaseDao就可以了。
第二章基于xml文件配置:
但是需要在spring的配置文件中增加这个UserDao的配置:
第一种基于注解的配置,好处是不需要编写xml,但是这种比较容易侵入业务逻辑。
第二种基于xml配置,好处是不侵入业务逻辑,但是当dao的数量很多的时候,需要在xml中配置好多。
所以最后具体选择哪种,大家可以结合自己的情况
我们可以先来看看mybatis-spring框架的1.1.1版本中关于SqlSessionDaoSupport的代码吧:
所以我们在编写dao层级代码的时候只需要dao直接继承SqlSessionDaoSupport,并标注注解@Repository,然后就可以使用类似的getSqlSession().selectList("User.selectUsers");这样的方法来使用它了,而且在spring的配置文件中的配置也比较少:
但是升级到1.2之后,我们看看SqlSessionDaoSupport的源代码:
从上面的源码可以看出:在方法setSqlSessionFactory和setSqlSessionTemplate方法上面现在都没有标注有:“@Autowired(required = false)”这样的注解。
如果一些系统直接从mybatis-spring1.1.1升级到1.2版本的时候,就会出现问题。
在1.2版本下面有几种方式来使用:
第一种,基于注解:
我们自己重写set方法就可以了。在这种情况下spring的配置文件不需要修改。这个实例是随意写的,如果你的工程中dao类很多(绝大多数情况都是),这样你就可以编写一个BaseDao,然后在这个BaseDao中重写这个方法,其他的dao只需要继承这个BaseDao就可以了。
第二章基于xml文件配置:
但是需要在spring的配置文件中增加这个UserDao的配置:
第一种基于注解的配置,好处是不需要编写xml,但是这种比较容易侵入业务逻辑。
第二种基于xml配置,好处是不侵入业务逻辑,但是当dao的数量很多的时候,需要在xml中配置好多。
所以最后具体选择哪种,大家可以结合自己的情况
相关文章推荐
- eclipse maven update project 相关问题
- Java String处理入门 - null或空值的判断处理
- java.util.NoSuchElementException解决办法
- Java于 初始化序列?
- Java学习笔记
- 在java项目文件读取数据库文件prodect.xml信息
- spring mvc综合easyui点击上面菜单栏中的菜单项问题
- java根据jar包反编译后修改再打包回jar的做法
- 给java项目改名字
- 使用 JavaFX 快速创建应用程序
- Java基础知识强化53:经典排序之选择排序(SelectionSort)
- 将java log4j的日志配置输出到mysql中
- java集合类中的迭代器
- SimpleDateFormat使用详解 java
- 深入理解Java:注解(Annotation)--注解处理器
- JAVA 学习关于 类
- java冒泡排序算法
- 深入理解Java:注解(Annotation)基本概念
- Java基础知识强化52:经典排序之冒泡排序(BubbleSort)
- java中的Eclipse的主要视图