1、基本目录如下

 2、首先是向lib中加入相应的jar包

 3、然后在web.xml中加入配置,使spring和springmvc配置文件起作用。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <!-- needed for ContextLoaderListener -->
  4. <context-param>
  5. <param-name>contextConfigLocation</param-name>
  6. <param-value>classpath:spring.xml</param-value>
  7. </context-param>
  8.  
  9. <!-- Bootstraps the root web application context before servlet initialization -->
  10. <listener>
  11. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  12. </listener>
  13.  
  14. <!-- The front controller of this Spring Web application, responsible for handling all application requests -->
  15. <servlet>
  16. <servlet-name>springDispatcherServlet</servlet-name>
  17. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  18. <init-param>
  19. <param-name>contextConfigLocation</param-name>
  20. <param-value>classpath:springmvc.xml</param-value>
  21. </init-param>
  22. <load-on-startup>1</load-on-startup>
  23. </servlet>
  24.  
  25. <!-- Map all requests to the DispatcherServlet for handling -->
  26. <servlet-mapping>
  27. <servlet-name>springDispatcherServlet</servlet-name>
  28. <url-pattern>/</url-pattern>
  29. </servlet-mapping>
  30.  
  31. </web-app>

4、新建一个conf源文件,相关配置在里面编写,即spring配置文件spring.xml,springmvc配置文件springmvc.xml,mybatis全局配置文件mybatis-conf.xml。连接数据库所需的外部引用文件dbconfig.properties。

首先我们来看mybatis-conf.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <setting name="mapUnderscoreToCamelCase" value="true"/>
  8. <setting name="jdbcTypeForNull" value="NULL"/>
  9.  
  10. <!--显式的指定每个我们需要更改的配置的值,即使他是默认的。防止版本更新带来的问题 -->
  11. <setting name="cacheEnabled" value="true"/>
  12. <setting name="lazyLoadingEnabled" value="true"/>
  13. <setting name="aggressiveLazyLoading" value="false"/>
  14. </settings>
  15.  
  16. <databaseIdProvider type="DB_VENDOR">
  17. <property name="MySQL" value="mysql"/>
  18. <property name="Oracle" value="oracle"/>
  19. <property name="SQL Server" value="sqlserver"/>
  20. </databaseIdProvider>
  21.  
  22. </configuration>

在这里主要的就是一些设置<setting>,像驼峰命名、开启二级缓存、延迟加载等等。以及标识各种数据库,像mysql、oracle等等。

然后再来看看springmvc.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
  7. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9.  
  10. <!--SpringMVC只是控制网站跳转逻辑 -->
  11. <!-- 只扫描控制器 -->
  12. <context:component-scan base-package="com.gong.mybatis" use-default-filters="false">
  13. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  14. </context:component-scan>
  15.  
  16. <!-- 视图解析器 -->
  17. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  18. <property name="prefix" value="/WEB-INF/pages/"></property>
  19. <property name="suffix" value=".jsp"></property>
  20. </bean>
  21.  
  22. <mvc:annotation-driven></mvc:annotation-driven>
  23. <mvc:default-servlet-handler/>
  24. </beans>

主要是四个方面:

  • 让springmvc只处理标识了@Controller的IOC容器
  • 视图解析器
  • 配置默认的servletHandler
  • 配置<mvc:annotation-driven></mvc:annotation-driven>

具体用法参考以前的学习笔记。

接着看看spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
  9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
  10. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  11.  
  12. <!-- Spring希望管理所有的业务逻辑组件,等。。。 -->
  13. <context:component-scan base-package="com.gong.mybatis">
  14. <context:exclude-filter type="annotation"
  15. expression="org.springframework.stereotype.Controller" />
  16. </context:component-scan>
  17.  
  18. <!-- 引入数据库的配置文件 -->
  19. <context:property-placeholder location="classpath:dbconfig.properties" />
  20. <!-- Spring用来控制业务逻辑。数据源、事务控制、aop -->
  21. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  22. <property name="jdbcUrl" value="${jdbc.url}"></property>
  23. <property name="driverClass" value="${jdbc.driver}"></property>
  24. <property name="user" value="${jdbc.username}"></property>
  25. <property name="password" value="${jdbc.password}"></property>
  26. </bean>
  27. <!-- spring事务管理 -->
  28. <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  29. <property name="dataSource" ref="dataSource"></property>
  30. </bean>
  31.  
  32. <!-- 开启基于注解的事务 -->
  33. <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
  34.  
  35. <!--
  36. 整合mybatis
  37. 目的:1、spring管理所有组件。mapper的实现类。
  38. service==>Dao @Autowired:自动注入mapper;
  39. 2、spring用来管理事务,spring声明式事务
  40. -->
  41. <!--创建出SqlSessionFactory对象 -->
  42. <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  43. <property name="dataSource" ref="dataSource"></property>
  44. <!-- configLocation指定全局配置文件的位置 -->
  45. <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  46. <!--mapperLocations: 指定mapper文件的位置-->
  47. <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"></property>
  48. </bean>
  49.  
  50. <!--配置一个可以进行批量执行的sqlSession -->
  51. <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
  52. <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
  53. <constructor-arg name="executorType" value="BATCH"></constructor-arg>
  54. </bean>
  55.  
  56. <!-- 扫描所有的mapper接口的实现,让这些mapper能够自动注入;
  57. base-package:指定mapper接口的包名
  58. -->
  59. <mybatis-spring:scan base-package="com.gong.mybatis.dao"/>
  60. <!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  61. <property name="basePackage" value="com.gong.mybatis.dao"></property>
  62. </bean> -->
  63.  
  64. </beans>

我们一个个来看:

  • 首先是配置除了@Controller其余的注解皆由spring来管理
  • 引入外部的数据库的信息,并进行数据库连接配置
  • 配置事务管理器
  • 配置基于注解的事务,即可以使用@Transactional注解
  • 配置SqlSessionFactoryBean,不用我们每次都要获取SqlSessionFactory和SqlSession实例,同时引用mybatis配置文件以及mapper.xml文件存在的位置。
  • 配置一个可以进行批量执行的sqlSession。
  • 配置mapper.xml对应的接口文件的位置

dbconfig.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true
  3. jdbc.username=root
  4. jdbc.password=123456

5、最后就是编写相应的文件进行测试了

具体流程:bean包里存放普通的实体类,controller包里面主要是后台和视图view之间进行交互,dao包主要是相关操作数据库的方法与mybatis.mapper中的xml相对应,service主要是存放着接口,serviceImpl主要是实现service中的方法,这些方法是可以是不同数据库方法的结合使用。首先是controller调用serviceImpl中的方法,serviceImpl中的方法调用dao里面的方法,dao里面的方法对应着mapper.xml文件中操作数据库的方法,最后controller将数据传给视图view或者view通过请求到controller。

Employee.java

  1. package com.gong.mybatis.bean;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Employee implements Serializable{
  6.  
  7. /**
  8. *
  9. */
  10. private static final long serialVersionUID = 1L;
  11.  
  12. public Employee() {}
  13.  
  14. public Employee(Integer id, String lastName, String gender, String email) {
  15. super();
  16. this.id = id;
  17. this.lastName = lastName;
  18. this.gender = gender;
  19. this.email = email;
  20. }
  21. private Integer id;
  22. private String lastName;
  23. private String gender;
  24. private String email;
  25. public Integer getId() {
  26. return id;
  27. }
  28. public void setId(Integer id) {
  29. this.id = id;
  30. }
  31. public String getLastName() {
  32. return lastName;
  33. }
  34. public void setLastName(String lastName) {
  35. this.lastName = lastName;
  36. }
  37. public String getGender() {
  38. return gender;
  39. }
  40. public void setGender(String gender) {
  41. this.gender = gender;
  42. }
  43. public String getEmail() {
  44. return email;
  45. }
  46. public void setEmail(String email) {
  47. this.email = email;
  48. }
  49.  
  50. @Override
  51. public String toString() {
  52. return "Employee [id=" + id + ", lastName=" + lastName + ", gender=" + gender + ", email=" + email + "]";
  53. }
  54.  
  55. }

EmployeeController.java

  1. package com.gong.mybatis.controller;
  2.  
  3. import java.util.List;
  4. import java.util.Map;
  5.  
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9.  
  10. import com.gong.mybatis.bean.Employee;
  11. import com.gong.mybatis.service.EmployeeService;
  12.  
  13. @Controller
  14. public class EmployeeController {
  15. @Autowired
  16. private EmployeeService employeeService;
  17.  
  18. @RequestMapping("/getemps")
  19. public String emps(Map<String,Object> map) {
  20. List<Employee> emps = employeeService.getEmps();
  21. map.put("emps", emps);
  22. return "list";
  23. }
  24. }

EmployeeService.java

  1. package com.gong.mybatis.service;
  2.  
  3. import java.util.List;
  4. import com.gong.mybatis.bean.Employee;
  5.  
  6. public interface EmployeeService {
  7.  
  8. public List<Employee> getEmps();
  9. }

EmployeeServiceImpl.java

  1. package com.gong.mybatis.serviceImpl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7.  
  8. import com.gong.mybatis.bean.Employee;
  9. import com.gong.mybatis.dao.EmployeeMapper;
  10. import com.gong.mybatis.service.EmployeeService;
  11.  
  12. @Service
  13. public class EmployeeServiceImpl implements EmployeeService{
  14. @Autowired
  15. private EmployeeMapper employeeMapper;
  16.  
  17. public List<Employee> getEmps(){
  18. return employeeMapper.getEmps();
  19. }
  20. }

EmployeeMapper.java

  1. package com.gong.mybatis.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import com.gong.mybatis.bean.Employee;
  6.  
  7. public interface EmployeeMapper {
  8.  
  9. public List<Employee> getEmps();
  10.  
  11. }

EmployeeMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5.  
  6. <mapper namespace="com.gong.mybatis.dao.EmployeeMapper">
  7. <select id="getEmps" resultType="com.gong.mybatis.bean.Employee">
  8. select id,last_name lastName,email,gender from tbl_employee
  9. </select>
  10. </mapper>

6、相关视图页面

index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <a href="getemps">查询所有员工</a>
  11. </body>
  12. </html>

list.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>员工列表</title>
  9. </head>
  10. <body>
  11. <table>
  12. <tr>
  13. <td>id</td>
  14. <td>lastName</td>
  15. <td>email</td>
  16. <td>gender</td>
  17. </tr>
  18. <c:forEach items="${emps}" var="emp">
  19. <tr>
  20. <td>${emp.id }</td>
  21. <td>${emp.lastName }</td>
  22. <td>${emp.email }</td>
  23. <td>${emp.gender }</td>
  24. </tr>
  25. </c:forEach>
  26.  
  27. </table>
  28.  
  29. </body>
  30. </html>

7、启动tomcat服务器

点击查询所有员工:

得到如图所示界面,说明spring+springmvc+mybatis整合基本完成。

ssm之spring+springmvc+mybatis整合初探的更多相关文章

  1. 简单易学的SSM(Spring+SpringMVC+MyBatis)整合

    SSM(Spring+SpringMVC+MyBatis)的整合: 具体执行过程:1.用户在页面向后台发送一个请求 2.请求由DispatcherServlet 前端控制器拦截交给SpringMVC管 ...

  2. SSM Spring +SpringMVC+Mybatis 整合配置 及pom.xml

    SSM Spring +SpringMVC+Mybatis 配置 及pom.xml SSM框架(spring+springMVC+Mybatis) pom.xml文件 maven下的ssm整合配置步骤

  3. SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  4. 框架篇:Spring+SpringMVC+Mybatis整合开发

    前言: 前面我已搭建过ssh框架(http://www.cnblogs.com/xrog/p/6359706.html),然而mybatis表示不服啊. Mybatis:"我抗议!" ...

  5. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  6. Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World(转发)

    [JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World 来源:http://blog.csdn.net/zhshulin/article/de ...

  7. SSM(Spring+SpringMVC+MyBatis)高并发优化思路

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项目的框架 ...

  8. Spring+springmvc+Mybatis整合案例 annotation版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例 Version:annotation版 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version=&qu ...

  9. Spring+springmvc+Mybatis整合案例 xml配置版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例 Version:xml版(myeclipse) 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version ...

随机推荐

  1. H3C VLSM

  2. D Thanking-Bear magic

    题目描述 In order to become a magical girl, Thinking-Bear are learning magic circle. He first drew a reg ...

  3. 2018-8-10-C#-写系统日志

    title author date CreateTime categories C# 写系统日志 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 ...

  4. vue-learning:20 - js - 区别:filters / data / computed / watch / methods

    区别:filters / data / computed / watch / methods 在配置对象options中,filters/data/computed/watch/methods的每一项 ...

  5. 牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并)

    牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \ ...

  6. Android程序分析环境(搭建步骤略)

    1:安装JDK JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK).没有JDK的话,无法编译Java程序. 2:安装Android  SDK Androi ...

  7. CentOS遇到Qt编译问题(error: cannot find -lGL)

    1.安装Qt,进入CentOS系统的终端,依次执行以下命令 chmod +x qt-opensource-Linux-x64-5.5.1.run ./qt-opensource-linux-x64-5 ...

  8. 使用 HttpClient 进行表单提交时,遇到的问题

    问题 在开发微信支付的小微商户进件接口时,需要通过表单来上传身份证图片等数据.在微信支付接口文档也说明了,需要使用 multipart/form-data 的方式发送请求..NET 提供了 Multi ...

  9. MySQL中的CHAR和VARCHAR到底支持多长?

    最近在研究MySQL的数据类型,我们知道,选择合适的数据类型和数据长度对MySQL的性能影响是不可忽视的,小字段意味着可以MySQL可以读取更多的记录,从而加快查询速度. 网上该问题的答案有很多版本, ...

  10. requests爬取豆瓣top250电影信息

    ''' 1.爬取豆瓣top250电影信息 - 第一页: https://movie.douban.com/top250?start=0&filter= - 第二页: https://movie ...