SSM(Spring+SpringMVC+Mybatis)整合

1、导包

SSM(Spring+SpringMVC+Mybatis)整合

项目结构如下

SSM(Spring+SpringMVC+Mybatis)整合

 

2、配置web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

 

  <!-- 配置Spring IOC容器的Listener -->

    <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:applicationContext.xml</param-value>

    </context-param>

   

    <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

      

    <!-- 配置DispatcherServlet -->

    <servlet>

       <servlet-name>springDispatcherServlet</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

       <!-- 实际上也可以不使用contextConfigLocation来配置springMVC的配置文件

           而使用默认的,默认的配置文件为:/WEB-INF/<servlet-name>-servlet.xml

        -->

       <init-param>

           <param-name>contextConfigLocation</param-name>

           <param-value>classpath:springmvc.xml</param-value>

       </init-param>

       <load-on-startup>1</load-on-startup>

    </servlet>

 

    <servlet-mapping>

       <servlet-name>springDispatcherServlet</servlet-name>

       <url-pattern>/</url-pattern>

    </servlet-mapping>

   

</web-app>

 

3、配置springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xsi:schemaLocation="

        http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

       

        <!-- 配置自动扫描的包 -->

        <context:component-scan base-package="controller" use-default-filters="false">

           <!-- 只扫描标有Controller注解的类 -->

           <context:include-filter type="annotation"

           expression="org.springframework.stereotype.Controller"/>

        </context:component-scan>

       

        <!-- 配置视图解析器 -->

        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

           <property name="prefix" value="/WEB-INF/views/"></property>

           <property name="suffix" value=".jsp"></property>

        </bean>

       

        <!-- 处理静态资源 -->

        <mvc:default-servlet-handler/>

       

        <mvc:annotation-driven></mvc:annotation-driven>

       

</beans>

 

4、配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:util="http://www.springframework.org/schema/util"

    xmlns:p="http://www.springframework.org/schema/p"

    xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"

    xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd

       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd

       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd">

 

    <!-- 配置自动扫描的包 -->

    <context:component-scan base-package="service">

       <!-- 扫描除了标有Controller注解的类 -->

       <context:exclude-filter type="annotation"

           expression="org.springframework.stereotype.Controller"/>

    </context:component-scan>

   

    <!-- 导入配置文件 -->

    <context:property-placeholder location="classpath:db.properties"/>

   

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

       <property name="user" value="${jdbc.user}"></property>

       <property name="password" value=""></property>

       <property name="driverClass" value="${jdbc.driverClass}"></property>

       <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&amp;characterEncoding=utf8"></property>

 

       <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>

       <property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>

    </bean>

   

    <!-- 声明事务管理器 -->

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource"></property>

    </bean>

   

    <!-- 开启注解事务 -->

    <tx:annotation-driven transaction-manager="transactionManager"/>

   

    <!-- 创建SqlsessionFactory对象 -->

    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">

       <property name="dataSource" ref="dataSource"></property>

       <!-- 指定全局配置文件的位置 -->

       <property name="configLocation" value="classpath:mybatis-config.xml"></property>

       <!-- 指定mapper文件的位置 -->

       <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"></property>

    </bean>

   

    <!--

       扫描所有的mapper接口的实现,让这些mapper能够自动注入

       base-package:指定mapper接口的包名

     -->

    <mybatis-spring:scan base-package="dao"/>

   

</beans>

 

db.properties

 

jdbc.user=root

jdbc.password=

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/test

 

jdbc.initPoolSize=5

jdbc.maxPoolSize=10

 

5、测试(从数据库中查询所有员工)

 

Employee.java实体类

public class Employee implements Serializable {

    private Integer id;

    private String name;

    private String sex;

    private String email;

 

    public Employee() {

       super();

    }

 

    public Employee(Integer id, String name, String sex, String email) {

       super();

       this.id = id;

       this.name = name;

       this.sex = sex;

       this.email = email;

    }

 

    public Integer getId() {

       return id;

    }

 

    public void setId(Integer id) {

       this.id = id;

    }

 

    public String getName() {

       return name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    public String getSex() {

       return sex;

    }

 

    public void setSex(String sex) {

       this.sex = sex;

    }

 

    public String getEmail() {

       return email;

    }

 

    public void setEmail(String email) {

       this.email = email;

    }

 

    @Override

    public String toString() {

       return "Employee [id=" + id + ", name=" + name + ", sex=" + sex + ", email=" + email + "]";

    }

}

 

EmployeeMapper.java接口

public interface EmployeeMapper {

   

    //查询所有员工的接口方法

    public List<Employee> getEmps();

   

}

 

EmployeeService.java

@Service

public class EmployeeService {

   

    @Autowired

    private EmployeeMapper employeeMapper;

   

    public List<Employee> getEmps(){

       return employeeMapper.getEmps();

    }

}

 

EmployeeController.java

@Controller

public class EmployeeController {

   

    @Autowired

    private EmployeeService employeeService;

   

    @RequestMapping("/getEmps")

    public String getEmps(Map<String, Object> map){

       List<Employee> emps = employeeService.getEmps();

       map.put("allEmps", emps);

       return "list";

    }

   

}

EmployeeMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper 

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="dao.EmployeeMapper">

<!-- namespace指定所对应的接口的全路径 -->

 

    <!-- public List<Employee> getEmps() -->

    <select id="getEmps" resultType="entity.Employee">

       select * from employee;

    </select>

   

</mapper>

 

index.jsp

<a href="getEmps">查询所有员工</a>

 

list.jsp

<h3>员工列表</h3>

    <table>

           <tr>

              <td>员工号</td>

              <td>姓名</td>

              <td>性别</td>

              <td>email</td>

           </tr>

       <c:forEach items="${allEmps }" var="emp">

           <tr>

              <td>${emp.id }</td>

              <td>${emp.name }</td>

              <td>${emp.sex }</td>

              <td>${emp.email }</td>

           </tr>

       </c:forEach>

</table>

 

测试结果

SSM(Spring+SpringMVC+Mybatis)整合

 

推荐大家去百度传课学习尚硅谷的免费网课,讲的很好