Mybatis最入门---整合Spring

[一步是咫尺,一步即天涯]

最近封闭开发中,于是近乎一个月都没有更新内容,希望各位看官不要在意。本文我们来介绍Mybatis最入门中的最后一文:与Spring的整合。本文仅作为基本Spring+mybatis配置,详细用法及含义需要相关基础知识储配,请各位看官先自行查阅相关资料吧。好了,废话不说,马上开始我们的正文部分吧!

准备工作:

a.操作系统 :win7 x64

b.基本软件:MySQL,Mybatis,SQLyog

注:数据库中的表,数据,请读者按照下文实体建立即可。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

1.创建本文我们将使用的工程Mybatis14,工程结构如下:

Mybatis最入门---整合Spring_第1张图片

2.在pom.xml中添加以来,具体内容如下:


  4.0.0
  com.csdn.ingo
  mybatis14
  war
  0.0.1-SNAPSHOT
  mybatis14 Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
    
    
  	
		javax.servlet
		javax.servlet-api
		3.1.0
	
	
	
		javax.servlet.jsp
		javax.servlet.jsp-api
		2.3.1
	
	
	
	
		javax.servlet
		jstl
		1.2
	
  
  	
	
  		org.springframework
  		spring-core
  		4.1.7.RELEASE
  	
  	
  		org.springframework
  		spring-beans
  		4.1.7.RELEASE
  	
  	
         org.springframework
         spring-tx
         4.1.7.RELEASE
        
  	
  		org.springframework
  		spring-context
  		4.1.7.RELEASE
  	
  	
  		org.springframework
  		spring-context-support
  		4.1.7.RELEASE
  	
  	
  	
		org.springframework
		spring-web
		4.1.7.RELEASE
	
	
	
		org.springframework
		spring-webmvc
		4.1.7.RELEASE
	
	
	
		org.springframework
		spring-aop
		4.1.7.RELEASE
	
	
	
	
		org.springframework
		spring-aspects
		4.1.7.RELEASE
	
	
	
		org.springframework
		spring-jdbc
		4.1.7.RELEASE
	
  
	  
		org.mybatis
		mybatis-spring
		1.2.3
	
  	
  	
		log4j
		log4j
		1.2.17
	
	
	 
		org.mybatis
		mybatis
		3.3.0
	
	
	
	
		mysql
		mysql-connector-java
		5.1.26
	
  
  
    mybatis14
  

3.创建日志配置文件,log4j.properties具体内容如下:

log4j.rootLogger=DEBUG, Console  
  
#Console  
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  
  
log4j.logger.java.sql.ResultSet=INFO  
log4j.logger.org.apache=INFO  
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG  
4.创建mybatis-config.xml文件,具体内容如下:




	
	
		
	
5.创建Spring-mvc.xml文件,具体内容如下:

    
    

	
	

	
	
		
		
	

  
6.创建UserController文件,具体内容如下:

package com.csdn.ingo.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.csdn.ingo.api.IUserService;
import com.csdn.ingo.entity.User;

/**
 * 用户Controller层
 */
@Controller
@RequestMapping("/user")
public class UserController {

	@Autowired
	private IUserService userService;

	/**
	 * 用户登录
	 */
	@RequestMapping("/login")
	public String login(User user, HttpServletRequest request) {
		try {
			User curUser = userService.getByUserName(user.getUserName());
			if (curUser != null)
				return "success";
		} catch (Exception e) {
			e.printStackTrace();
			request.setAttribute("user", user);
			request.setAttribute("errorMsg", "用户名或密码错误!");
			return "login";
		}
		return "login";
	}
}
7.创建IUserService文件,具体内容如下:

package com.csdn.ingo.api;
import com.csdn.ingo.entity.User;
public interface IUserService {

	/**
	 * 通过用户名查询用户
	 * @param userName
	 * @return
	 */
	public User getByUserName(String userName);
}
8.创建UserServiceImpl文件,具体内容如下:

package com.csdn.ingo.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.csdn.ingo.api.IUserService;
import com.csdn.ingo.dao.UserDao;
import com.csdn.ingo.entity.User;

@Service("userService")
public class UserServiceImpl implements IUserService{
	@Autowired
	private UserDao userDao;
	
	public User getByUserName(String userName) {
		return userDao.getByUserName(userName);
	}
}
9.创建UserDao文件,具体内容如下:

package com.csdn.ingo.dao;
import com.csdn.ingo.entity.User;
public interface UserDao {

	/**
	 * 通过用户名查询用户
	 * @param userName
	 * @return
	 */
	public User getByUserName(String userName);
}
10.创建UserMapper.xml,具体内容如下:





	
		
		
		
	
	
	

 
11.创建web.xml文件,具体内容如下:



	mybatis
	
		login.jsp
	
	
	
		contextConfigLocation
		
			classpath:applicationContext.xml,
		
	
	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
		encodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		true
		
			encoding
			UTF-8
		
	
	
		encodingFilter
		/*
	
	
	
		springMVC
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:spring-mvc.xml
		
		1
		true
	
	
		springMVC
		/
	
12.创建login.jsp文件,具体内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


userName:
password:
${errorMsg }
13.创建success.jsp文件,具体内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


欢迎你!

-------------------------------------------------------------------------------------------------------------------------------------

重点来了!!!

-------------------------------------------------------------------------------------------------------------------------------------

14.创建applicationContext.xml,具体内容如下:

    
    
        
	
	
	
	
	
		
		
		
		
	

	
	
		
		
		
		
		
	

	
	
		
		
	

	
	
		
	
	
	  
      
          
          
              
              
              
              
              
              
              
              
              
              
              
              
              
              
              
          
      
  
      
      
          
          
      
【解释】

第一条:最简单的数据源的基础配置。在实际应用时,还应该配置连接池的内容,配置属性如下:


		
		
		
		
		

		
		
		
-------------------------------------------------------------------------------------------------------------------------------------

第二条:dao层接口所在包,基本配置如上文所示。在实际应用时,为了达到搜索指定文件,我们通常会使用自定义的注解。为了使得Mybatis能够找到这些注解的接口对象,我们还需要加入一个配置属性,如下:

对应的MybatisRepository,注解的内容如下:

import org.springframework.stereotype.Component;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface MyBatisRepository {
    String value() default "";
}
-------------------------------------------------------------------------------------------------------------------------------------


	
第三条:看过前面一开始的文章的看官,应该注意到,我们在Mybatis中使用的Sqlsession而不是上面显示的sqlSessionFeactoryBean。这里各个对象之间的相互关系为:SqlSession由SqlSessionFactory生成,SqlSessionFactory又由SqlSessionFactoryBuilder生成。但是Mybatis-Spring是基于SqlSessionFactoryBean的。在使用Mybatis-Spring的时候,我们也需要SqlSession,而且这个SqlSession是内嵌在程序中的,一般不需要我们直接访问。SqlSession也是由SqlSessionFactory来产生的,但是Mybatis-Spring给我们封装了一个SqlSessionFactoryBean,在这个bean里面还是通过SqlSessionFactoryBuilder来建立对应的SqlSessionFactory,进而获取到对应的SqlSession。通过SqlSessionFactoryBean我们可以通过对其指定一些属性来提供Mybatis的一些配置信息。在这条配置中,我们需要配置三个基本属性,数据源dataSource,SQL语句XML文件所在位置mapperLocaitons,mybatis配置文件位置configLocation。这里需要特别注意的是mapper的xml文件在src/main/resources文件夹下,对应的路径分隔符为"/",示例如下:

-------------------------------------------------------------------------------------------------------------------------------------

除了,这三条配置之外,我们还给出了事物相关的配置供各位看官参考。

关于这些配置发挥作用的时机,有兴趣的读者可以在启动时跟踪代码,观察控制台日志输出来学习,这里不再赘述。

最后,测试方法,在tomcat或其他容器上部署程序运行即可。

--------------------------------------------------------------------------------------------------------------------------------------------------------

至此,Mybatis最入门---整合Spring 结束


备注:

到目前为止,mybatis入门系列的内容就全部结束了,在此,再对开源世界的大神们表示感谢。内容中如果有不妥之处还请积极留言,另外,如果还有想了解内容也可以留言,后续有时间也会更新。

祝好!


参考资料:

http://haohaoxuexi.iteye.com/blog/1843309


你可能感兴趣的:(Mybatis)