【框架整合】三、整合mybatis

一、导入jar包


所需jar包为  
    mybatis-3.2.0.jar
    mybatis-spring-1.3.0.jar

    
下载地址
    https://repo1.maven.org/maven2/org/mybatis/mybatis/
    https://repo1.maven.org/maven2/org/mybatis/mybatis-spring/



二、 spring配置 引入mybatis


在刚刚的数据源配置文件applicationContext-datasource中,加上如下配置


	
	
	
		
		 
		
		
	 
	
	
	
	
	
		
		
	
	
	
	

上面的最终的正确配置
这边遇到很多坑
一开始使用的配置是sqlSessionFactory
 ?
				?
				
				
			


结果报错 java.lang.ClassNotFoundException: ${jdbc.driver}

后来改用sqlSessionFactoryBeanName注入就没有问题(不要使用sqlSessionFactory属性注入,使用sqlSessionFactoryBeanName注入),因为这时不会立即初始化sqlSessionFactory,传入的只是名字,非bean,所以不会引发提前初始化问题
   
   特别注意 改由使用sqlSessionFactoryBeanName注入之后 把ref 换成value 否则报错
   org.springframework.beans.factory.BeanCreationException: Error creating bean with name  

   'org.mybatis.spring.mapper.MapperScannerConfigurer#0'   
   ......

   no matching editors or conversion strategy found

   这点粗心的话容易被忽略掉



三、测试

1.使用generatorConfig.xml自动生成 实力类、dao、及映射文件

详见: http://blog.csdn.net/xiaxiaozhang/article/details/72851075


并新建service类和controller类


最终结构如图

【框架整合】三、整合mybatis_第1张图片



附带一下 controller的代码 简单书写,只为测试

package com.mvc.mybatis.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.mvc.mybatis.dao.model.MyInfo;
import com.mvc.mybatis.dao.model.MyInfoCriteria;
import com.mvc.mybatis.service.MyTestService;
/**
 * mybatis测试
 * 
 * @author xiazhang
 * @date   2017-6-15
 */
@Controller
public class MyBatisTestController {
	
	private static Logger logger = LoggerFactory.getLogger(MyBatisTestController.class);
	
	@Autowired
	private MyTestService myTestService;

	@RequestMapping(value="/myTest" , method = RequestMethod.POST)
	public void myTest(HttpServletRequest request , HttpServletResponse response) throws Exception{
		MyInfoCriteria myInfo = new MyInfoCriteria();
		List myInfoList = myTestService.getMyInfoList(myInfo);
		if(myInfoList != null){
			for (MyInfo myInfo2 : myInfoList) {
				logger.info("name:{};sex:{}",myInfo2.getName(),myInfo2.getSex());
			}
		}
	 
	}
	
	
	
	
}


 
   

 
   

启动服务  发送post请求  http://localhost:8090/mySpringmvcWeb/myTest

结果

[INFO ] 2017-06-17 19:03:35 com.mvc.mybatis.controller.MyBatisTestController name:xiazhang;sex:男
[INFO ] 2017-06-17 19:03:35 com.mvc.mybatis.controller.MyBatisTestController name:nihao;sex:女



success






















你可能感兴趣的:(架构)