Spring MVC、MyBatis 和 Thymeleaf 集成:使用页面数据向数据库插入留言

本文将提供一个详细的示例,展示如何使用 Spring MVC、MyBatis 和 Thymeleaf 集成,从页面获取用户数据(姓名、书籍编号、书籍名称、留言内容、日期)并传参到名为 library 的数据库中名为 message 的表中。

1. 添加依赖

首先,在 pom.xml 文件中添加相关依赖:

<!-- SpringMVC -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.8.RELEASE</version>
</dependency>

<!-- MyBatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.5</version>
</dependency>

<!-- Thymeleaf -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<!-- MySQL -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.21</version>
</dependency>

2. 配置 Spring

在 Spring 的配置文件中添加相关配置:

<!-- 数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/library?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai" />
    <property name="user" value="root" />
    <property name="password" value="password" />
</bean>

<!-- MyBatis配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="com.example.demo.pojo" />
</bean>

<!-- Mapper扫描配置 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.demo.mapper" />
</bean>

<!-- SpringMVC配置 -->
<bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
    <property name="templateEngine" ref="templateEngine" />
    <property name="characterEncoding" value="UTF-8" />
    <property name="viewNames" value="*"</property>
</bean>

<bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
    <property name="enableSpringELCompiler" value="true" />
</bean>

<bean id="templateResolver" class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
    <property name="prefix" value="/WEB-INF/templates/" />
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML" />
    <property name="characterEncoding" value="UTF-8" />
</bean>

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

3. 创建实体类 Message

public class Message {
    private String name;
    private String bookId;
    private String bookName;
    private String messageContent;
    private String dateName;

    // getter和setter方法
}

4. 创建 Mapper 接口 MessageMapper

public interface MessageMapper {
    void insert(Message message);
}

5. 创建 Mapper 映射文件 MessageMapper.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="com.example.demo.mapper.MessageMapper">
    <insert id="insert" parameterType="com.example.demo.pojo.Message">
        insert into message (name, book_id, book_name, message_content, date_name)
        values (#{name}, #{bookId}, #{bookName}, #{messageContent}, #{dateName})
    </insert>
</mapper>

6. 创建 Controller 类 MessageController

@Controller
public class MessageController {
    @Autowired
    private MessageMapper messageMapper;

    @RequestMapping("/addMessage")
    public String addMessage(@RequestParam("name") String name,
                             @RequestParam("bookId") String bookId,
                             @RequestParam("bookName") String bookName,
                             @RequestParam("messageContent") String messageContent,
                             @RequestParam("dateName") String dateName) {
        Message message = new Message();
        message.setName(name);
        message.setBookId(bookId);
        message.setBookName(bookName);
        message.setMessageContent(messageContent);
        message.setDateName(dateName);
        messageMapper.insert(message);
        return "success";
    }
}

7. 创建 Thymeleaf 模板 addMessage.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>添加留言</title>
</head>
<body>
    <h1>添加留言</h1>
    <form action="/addMessage" method="post">
        <div>
            <label>姓名:</label>
            <input type="text" name="name" required="required" />
        </div>
        <div>
            <label>书籍编号:</label>
            <input type="text" name="bookId" required="required" />
        </div>
        <div>
            <label>书籍名称:</label>
            <input type="text" name="bookName" required="required" />
        </div>
        <div>
            <label>留言内容:</label>
            <textarea name="messageContent" required="required"></textarea>
        </div>
        <div>
            <label>日期:</label>
            <input type="date" name="dateName" required="required" />
        </div>
        <div>
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

8. 创建 Thymeleaf 模板 success.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>添加留言成功</title>
</head>
<body>
    <h1>添加留言成功</h1>
    <p>您已成功添加留言。</p>
    <p><a th:href="@{/addMessage}">返回添加留言页面</a></p>
</body>
</html>

9. 配置 Web.xml 文件

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <display-name>Library</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springmvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

10. 运行项目

运行项目,在浏览器中输入 http://localhost:8080/addMessage,输入相关信息并提交,将数据插入到数据库中。

注意:

  • 请确保您的数据库已配置并可以访问。
  • 请根据您的实际情况修改数据库连接信息。
  • 本示例仅供参考,您可以根据您的需求进行调整。
Spring MVC、MyBatis 和 Thymeleaf 集成:使用页面数据向数据库插入留言

原文地址: https://www.cveoy.top/t/topic/oFh8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录