[一步是咫尺,一步即天涯]
最近封闭开发中,于是近乎一个月都没有更新内容,希望各位看官不要在意。本文我们来介绍Mybatis最入门中的最后一文:与Spring的整合。本文仅作为基本Spring+mybatis配置,详细用法及含义需要相关基础知识储配,请各位看官先自行查阅相关资料吧。好了,废话不说,马上开始我们的正文部分吧!
准备工作:
a.操作系统 :win7 x64
b.基本软件:MySQL,Mybatis,SQLyog
注:数据库中的表,数据,请读者按照下文实体建立即可。
-----------------------------------------------------------------------------------------------------------------------------------------------------------1.创建本文我们将使用的工程Mybatis14,工程结构如下:
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
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