Spring整合mybatis、springMVC总结

这篇攻略主要介绍如何整合Spring、Mybatis和Spring MVC三个开源框架,让我们能够更轻松、更高效的构建Web应用程序。

简介

Spring是一个开源的JavaEE框架,用于开发企业级Web应用程序。Mybatis是一款轻量级的Java ORM框架,很适合与Spring集成。Spring MVC是Spring框架的一部分,用于构建Web应用程序。

步骤

Step 1. 创建一个Maven项目

首先,我们创建一个Maven项目,命名为spring-mybatis-demo,使用Java 8或更高版本。在pom.xml文件中加入以下依赖:

<dependencies>
    <!-- Spring Core -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.2.5.RELEASE</version>
    </dependency>

    <!-- Spring Context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.5.RELEASE</version>
    </dependency>

    <!-- Spring MVC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.5.RELEASE</version>
    </dependency>

    <!-- Mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.3</version>
    </dependency>

    <!-- Mybatis-Spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.4</version>
    </dependency>

    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
</dependencies>

Step 2. 添加数据库连接

创建一个名为config.properties的文件,在其中加入以下属性:

jdbc.url=jdbc:mysql://localhost:3306/spring-demo?useSSL=false
jdbc.username=root
jdbc.password=root

其中,jdbc.url是数据库的连接URL,jdbc.usernamejdbc.password是数据库的用户名和密码。

Step 3. 创建数据库和数据表

我们创建一个名为spring-demo的数据库,并在其中创建一个user表,表结构如下:

CREATE TABLE `user` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(255) NOT NULL,
    `email` VARCHAR(255) NOT NULL,
    `password` VARCHAR(255) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Step 4. 创建数据访问层接口和实现类

创建一个名为UserMapper的Java接口,包含以下方法:

public interface UserMapper {
    List<User> findAll();
}

创建一个名为UserMapperImpl的Java类,实现UserMapper接口:

@Repository
public class UserMapperImpl implements UserMapper {

    private SqlSessionFactory sessionFactory;

    @Autowired
    public UserMapperImpl(SqlSessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @Override
    public List<User> findAll() {
        try (SqlSession session = sessionFactory.openSession()) {
            return session.selectList("user.findAll");
        }
    }
}

src/main/resources目录下创建一个名为UserMapper.xml的Mybatis映射文件:

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="user">
    <select id="findAll" resultType="User">
        SELECT * FROM user
    </select>
</mapper>

Step 5. 创建控制器

创建一个名为UserController的Java类,包含以下方法:

@Controller
public class UserController {

    private UserMapper userMapper;

    @Autowired
    public UserController(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @RequestMapping("/")
    public String home(Model model) {
        List<User> users = userMapper.findAll();
        model.addAttribute("users", users);
        return "home";
    }
}

Step 6. 创建视图

src/main/webapp/WEB-INF/views目录下创建一个名为home.jsp的JSP文件,包含以下内容:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Spring-Mybatis Demo</title>
</head>
<body>
    <h1>Users</h1>
    <table>
        <thead>
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Email</th>
            </tr>
        </thead>
        <tbody>
            <c:forEach var="user" items="${users}">
                <tr>
                    <td>${user.id}</td>
                    <td>${user.name}</td>
                    <td>${user.email}</td>
                </tr>
            </c:forEach>
        </tbody>
    </table>
</body>
</html>

Step 7. 配置Spring

src/main/resources目录下创建一个名为applicationContext.xml的Spring配置文件,配置以下内容:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
</bean>

<bean id="userMapper" class="com.example.mapper.UserMapperImpl">
    <constructor-arg ref="sqlSessionFactory"/>
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

Step 8. 配置Spring MVC

src/main/webapp/WEB-INF目录下创建一个名为spring-servlet.xml的Spring MVC配置文件,配置以下内容:

<context:component-scan base-package="com.example.controller"/>
<mvc:annotation-driven/>

Step 9. 部署应用程序

最后,我们使用Maven将项目打包成WAR文件,并部署到Tomcat中。我们可以通过访问http://localhost:8080/spring-mybatis-demo/来查看我们的Web应用程序。

示例

示例1: 添加用户

我们修改UserController类,添加一个添加用户的方法:

@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public String addUser(@ModelAttribute User user, Model model) {
    userMapper.addUser(user);
    List<User> users = userMapper.findAll();
    model.addAttribute("users", users);
    return "home";
}

修改home.jsp,增加一个表单来添加用户:

<form action="addUser" method="post">
    <p>
        <label>姓名:</label>
        <input type="text" name="name"/>
    </p>
    <p>
        <label>邮箱:</label>
        <input type="text" name="email"/>
    </p>
    <p>
        <label>密码:</label>
        <input type="password" name="password"/>
    </p>
    <p>
        <input type="submit" value="提交"/>
    </p>
</form>

UserMapper中新增加一个添加用户的方法:

public interface UserMapper {
    List<User> findAll();
    void addUser(User user);
}

UserMapper.xml中新增加一条INSERT语句:

<insert id="addUser" parameterType="User">
    INSERT INTO user (name, email, password) VALUES
    (#{name}, #{email}, #{password})
</insert>

示例2: 删除用户

我们修改UserController类,添加一个删除用户的方法:

@RequestMapping("/deleteUser")
public String deleteUser(@RequestParam int id, Model model) {
    userMapper.deleteUser(id);
    List<User> users = userMapper.findAll();
    model.addAttribute("users", users);
    return "home";
}

修改home.jsp,在表格中增加一个删除按钮:

<c:forEach var="user" items="${users}">
    <tr>
        <td>${user.id}</td>
        <td>${user.name}</td>
        <td>${user.email}</td>
        <td><a href="deleteUser?id=${user.id}">删除</a></td>
    </tr>
</c:forEach>

UserMapper中新增加一个删除用户的方法:

public interface UserMapper {
    List<User> findAll();
    void addUser(User user);
    void deleteUser(int id);
}

UserMapper.xml中新增加一条DELETE语句:

<delete id="deleteUser" parameterType="int">
    DELETE FROM user WHERE id = #{id}
</delete>

结论

我们完成了Spring、Mybatis和Spring MVC三个框架的整合。该框架结构能够让我们更快、更高效的构建Web应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring整合mybatis、springMVC总结 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java网络编程的作用是什么?

    Java网络编程是指利用Java编程语言,使用Java自带的网络编程库(包括但不限于java.net包和java.io包)来实现网络编程功能。Java网络编程的作用主要是实现网络间的通信,使得不在同一物理位置的计算机和设备能够相互交流和传输数据,实现信息的传递和共享。 Java网络编程常用的功能包括创建Socket连接、发送和接收数据、实现服务端和客户端的通…

    Java 2023年5月11日
    00
  • 详解Java 类的加载机制

    详解Java 类的加载机制 Java是一种面向对象的编程语言,其面向对象的本质体现在Java类的使用上。在Java中,类是一种由Java源码编写的框架,其封装了需要处理的数据以及需要执行的方法,是Java程序的基本模块。Java类的加载是指将类名转换成Java虚拟机中的一个对象的过程,它是Java中关键的组成部分之一。本篇文章将进行详细讲解Java类的加载机…

    Java 2023年6月15日
    00
  • 如何把JAR发布到maven中央仓库的几种方法

    下面是如何将JAR包发布到Maven中央仓库的几种方法的完整攻略: 方法一:使用Maven发布插件 首先,在你的项目中加入Maven发布插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <art…

    Java 2023年5月20日
    00
  • mpvue微信小程序开发之实现一个弹幕评论

    mpvue微信小程序开发之实现一个弹幕评论 前言 在 mpvue 中使用一个基于 WebSocket 技术的弹幕评论系统可以增加小程序的用户参与度和互动效果。本文将带领读者一步步实现一个简单的弹幕评论系统。 准备 在开始开发之前,你需要在微信公众平台上注册一个小程序,并在本地搭建 mpvue 开发环境。另外,为了实现弹幕效果,你需要一个服务器来作为 WebS…

    Java 2023年5月23日
    00
  • VScode+Java配置与使用的详细步骤

    下面我将为您讲解“VScode+Java配置与使用的详细步骤”,主要包括以下几个步骤: 安装JDK并添加环境变量 安装VScode及必要的插件 创建Java项目并编辑代码 调试Java代码 接下来,我将一步步为您详细介绍。 1. 安装JDK并添加环境变量 Java需要使用JDK才能进行开发,因此我们首先需要安装Java Development Kit(JDK…

    Java 2023年5月26日
    00
  • 微信小程序实现手写签名(签字版)

    实现手写签名的微信小程序,其主要思路就是利用画布(canvas)实现用户在手机上进行手写签名的功能。下面是具体的实现攻略: 步骤一:创建画布(canvas) 首先,在小程序页面的wxml文件中创建一个canvas,如下所示: <canvas canvas-id="myCanvas" style="width: 100%; …

    Java 2023年5月23日
    00
  • LINQ教程之使用Lambda表达式

    很高兴为您讲解“LINQ教程之使用Lambda表达式”的完整攻略。 什么是Lambda表达式 Lambda表达式源于函数式编程,是一种简洁的表达方式。在C#中,Lambda表达式被用来编写LINQ查询、事件处理程序、委托等。 Lambda表达式的格式如下: (argument-list) => expression 其中,argument-list 是…

    Java 2023年5月19日
    00
  • java 中使用maven shade plugin 打可执行Jar包

    Java是一门非常流行的编程语言,Maven是一个优秀的Java项目管理工具,能够极大地简化Java项目的构建和管理。在Java项目中,我们有时需要将所有依赖打包成一个可执行的jar包,这时候我们可以使用Maven Shade Plugin来实现。下面,我将详细介绍如何使用Maven Shade Plugin打可执行Jar包的完整攻略。 步骤1:创建Mave…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部