• springmvc与mybatis整合时 java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 异常


    今天在整合springmvc与mybatis时,启动服务器遇到这样一个问题,

     by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required at org.springframework.util.Assert.notNull(Assert.java:112)

    异常的意思是  缺少sqlSessionFactory 或者是  sqlSessionTemplate

    我的dao层是利用继承SqlSessionDaoSupport  然后可以直接通过this.getSqlSession() 来进行数据库的操作。

    后来通过搜索以及查看源代码发现,mybatis-spring 1.2版本没有自动注入sqlSessionFactory

    解决方法是手动注入

    1 public class BaseDaoImpl extends SqlSessionDaoSupport {
    2     
    3     @Autowired
    4     public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){  
    5             super.setSqlSessionFactory(sqlSessionFactory);  
    6     }
    7 }

    然后在将dao实现类继承BaseDaoImpl就可以使用了

     1 @Repository
     2 public class PersonDaoImpl extends BaseDaoImpl implements PersonDao {
     3 
     4     String ns = "cn.tx.mapper.PersonMapper.";
     5     @Override
     6     public void savePerson(Person p) {
     7         this.getSqlSession().insert(ns+"savePerson", p);
     8     }
     9 
    10     @Override
    11     public Person selectPersonById(Integer personId) {
    12         return this.getSqlSession().selectOne(ns+"selectPersonById", personId);
    13     }
    14 
    15     @Override
    16     public void update(Person p) {
    17         this.getSqlSession().update(ns + "update", p);
    18     }
    19 
    20     @Override
    21     public void delete(Integer personId) {
    22         this.getSqlSession().delete(ns + "delete", personId);
    23     }
    24 
    25     @Override
    26     public List<Person> selectPersonByCondition(QueryCondition qc) {
    27         return this.getSqlSession().selectList(ns + "selectPersonByCondition", qc);
    28     }
    29 
    30 }
  • 相关阅读:
    几个数之和----数组刷题
    单调栈刷题
    腾讯金融科技凉经
    mysql刷题
    链表类题目常用方法
    阿里云一面凉经
    腾讯TEG一面凉经
    腾讯软件开发-后台开发实习生-一面凉经
    剑指 Offer 19. 正则表达式匹配
    剑指 Offer 20. 表示数值的字符串
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/8961830.html
Copyright © 2020-2023  润新知