Spring SpringMVC MyBatis整合案例

时光倒流 2024-06-15 ⋅ 16 阅读

引言

在Java开发中,合理地整合各种开源框架是提高开发效率、降低开发成本的重要方式之一。本篇博客将介绍如何使用Spring、SpringMVC和MyBatis这三个开源框架进行整合,并给出一个完整的案例以便读者更好地理解整合过程。

准备工作

在开始整合之前,我们需要先准备好以下环境和工具:

  • JDK 8及以上版本
  • Maven 3.x
  • Eclipse或IntelliJ IDEA等集成开发环境

同时,需要创建一个新的Maven项目来进行整合。

整合步骤

第一步:添加依赖

pom.xml文件中添加以下依赖:

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.8</version>
    </dependency>
    
    <!-- SpringMVC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.8</version>
    </dependency>
    
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.7</version>
    </dependency>
    
    <!-- 数据库驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
    
    <!-- Servlet API -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    
    <!-- JSP API -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
        <scope>provided</scope>
    </dependency>
    
    <!-- JSTL -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

第二步:配置Spring和SpringMVC

src/main/resources目录下创建applicationContext.xml文件,用来配置Spring相关的配置。示例配置如下:

<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
        
    <context:component-scan base-package="com.example.controller" />
    
    <!-- 数据库配置 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase?useSSL=false&amp;serverTimezone=UTC" />
        <property name="username" value="root" />
        <property name="password" value="password" />
    </bean>
    
    <!-- MyBatis配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>
    
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg ref="sqlSessionFactory" />
    </bean>
    
    <!-- SpringMVC配置 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
    
    <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <bean id="handlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
    
    <mvc:annotation-driven />
</beans>

第三步:配置MyBatis

src/main/resources目录下创建mybatis-config.xml文件,用来配置MyBatis相关的配置。示例配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
    
    <typeAliases>
        <package name="com.example.model" />
    </typeAliases>
    
    <mappers>
        <mapper resource="mapper/ExampleMapper.xml" />
    </mappers>
</configuration>

第四步:编写模型和Mapper

src/main/java/com/example/model目录下创建一个Example.java文件,用来定义一个示例模型类。示例代码如下:

package com.example.model;

public class Example {
    private Integer id;
    private String name;
    
    // 省略getter和setter
    
    @Override
    public String toString() {
        return "Example{" +
            "id=" + id +
            ", name='" + name + '\'' +
            '}';
    }
}

src/main/java/com/example/mapper目录下创建一个ExampleMapper.xml文件,用来编写对应Example模型类的Mapper。示例代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.example.mapper.ExampleMapper">
    <resultMap id="BaseResultMap" type="com.example.model.Example">
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="name" property="name" jdbcType="VARCHAR" />
    </resultMap>
    
    <sql id="Base_Column_List">
        id, name
    </sql>
    
    <select id="selectByExample" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List" />
        FROM example
    </select>
</mapper>

第五步:编写Controller

src/main/java/com/example/controller目录下创建一个ExampleController.java文件,用来定义一个示例控制器。示例代码如下:

package com.example.controller;

import com.example.model.Example;
import com.example.mapper.ExampleMapper;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/example")
public class ExampleController {
    @Autowired
    private ExampleMapper exampleMapper;
    
    @GetMapping("/")
    public List<Example> getExamples() {
        return exampleMapper.selectByExample(null);
    }
}

第六步:编写视图

src/main/webapp/WEB-INF/views目录下创建一个example.jsp文件,用来展示示例控制器返回的数据。示例代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Example</title>
</head>
<body>
    <h1>示例数据:</h1>
    <ul>
        <c:forEach var="example" items="${examples}">
            <li>${example}</li>
        </c:forEach>
    </ul>
</body>
</html>

第七步:部署和运行项目

完成以上步骤后,可以执行以下命令编译和打包项目:

$ mvn clean package

打包成功后,将生成的target目录下的.war文件部署到任意支持Java Web应用的容器上,比如Tomcat等。

启动容器后,访问http://localhost:8080/example/,即可看到示例数据的展示页面。

总结

本文介绍了如何使用Spring、SpringMVC和MyBatis进行整合的详细步骤,并给出了一个包含完整代码的示例案例。希望读者能通过本文掌握整合的基本原理和操作方法,能够在实际开发中更好地应用这些框架。整合不仅可以提高开发效率,还能帮助我们构建稳定、可维护的应用程序。


全部评论: 0

    我有话说: