springmvc+mybatis主从数据库的配置

     原理说明:每个数据源都有自己对应的mapper包,当服务调用mapper接口中的方法时,会先根据配置找到对应的数据源,然后执行方法。


核心的配置文件如下:

  
        
        	
            	classpath:application.properties
        	
        
         
  	
  	
  	
  	
	
		
		
		
		
	
	
		
		
		
		
		
		
			
				
			
		
		
		
		

		
		
		
		
		

		
		

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
	
		
		
	
		 
		
		
	

	
	
		
		
		
	

	
	
		
		 
	
	
	
	
		
	
	
	
	
	
		
		
		
	

    
    	
		
		
		
	
	
		
		
	
	


配置过程中的异常记录:

问题一:

在配置spring mvc + mybatis多数据源中,出现sql绑定异常问题:

org.apache.ibatis.binding.BindingException:Invalid bound statement


分析:mybatis中,出现sql绑定异常,一般都是由于mapper接口和xml映射文件中的命名空间不一致导致的。

 - interface = com.zmx.ssm.user.mapper.UserMapper.class 

- mapper namespace = com.zmx.ssm.user.mapper.UserMapper

最后,查找出,读库中的命名空间,使用了主库的mapper接口路径,导致出错。



问题二:

出现两个数据源,一个能访问,一个不能访问的问题,报错是sql绑定失败。

原因是配置了SqlSessionTemplate,


这里注意,不能简单的认为配置了SqlSessionTemplate的数据源能正常访问,就给另一个数据源也添加SqlSessionTemplate配置,这是不行的。

这里不能配置SqlSessionTemplate。


之后,同事发现,SqlSessionTemplate是可以配置的,也要分别指定。


        
    
	
	
		
		 
	



        
    

	
		
		
	






你可能感兴趣的:(Spring)