Dao层继承了SqlSessionDaoSupport,该类会自动注入SQLsessionFectory,我们只要使用this.getSqlSession()就可以拿到SqlSession。
但是如果使用的是mybatis-spring-1.0.0-RC3.jar这个版本是没有问题的。但是高版本就会有问题,原因是Mybatis3以来的jar包mybatis-spring-1.2.0-RC3.jar这个版本以及以上的版本中,对SqlSessionDaoSupport类中的SqlSessionFactory或sqlsessiontemplate注入方式进行了调整。
可能是为了解决多数据的问题吧,取消了自动注入。
解决方法:创建一个Dao的基类CommonDao,让这个基类继承SqlSessionDaoSupport,并通过Set方法注入SqlSessionFactory属性即可: