Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
本文将详细介绍如何在Spring Boot项目中整合Thymeleaf模板引擎、JDBC Template和MyBatis,涵盖YAML配置、依赖版本匹配、项目结构设计及代码示例。
一、版本兼容性说明
-
Spring Boot版本与Java版本对应关系
-
Spring Boot 2.x:支持Java 8、11(推荐Java 11)。
-
Spring Boot 3.x:最低要求Java 17。
-
示例:若使用Spring Boot
2.7.18,建议搭配Java 11。
-
-
依赖版本匹配
-
JDBC Template:内置于
spring-boot-starter-jdbc,无需单独指定版本。 -
Thymeleaf:通过
spring-boot-starter-thymeleaf引入,版本由Spring Boot管理。 -
MyBatis:需使用
mybatis-spring-boot-starter,版本需与Spring Boot兼容。-
Spring Boot 2.7.x → MyBatis Starter
2.3.x -
Spring Boot 3.x → MyBatis Starter
3.0.x
-
-

二、项目结构
标准的Maven项目结构如下:

三、YML配置详解
# application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/stu_db?useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driverthymeleaf:mode: HTMLprefix: classpath:/templates/suffix: .htmlcache: false # 开发时关闭缓存,生产环境改为true# MyBatis配置(仅整合MyBatis时需添加)
mybatis:mapper-locations: classpath:mapper/*.xml # Mapper XML文件路径type-aliases-package: com.ffyc.entity # 实体类包别名
四、依赖配置(Maven示例)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>spbt02</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 引入springboot-starter-parent依赖--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version></parent><dependencies><!-- 引入spring-boot-starter-web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 引入Thymeleaf依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- Springboot整合MySQL驱动类 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- Springboot整合JDBC模板框架 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- Springboot整合MyBatis框架 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency></dependencies></project>
五、代码示例
UserService
@Service
public class UserService {@Autowiredprivate JdbcTemplate jdbcTemplate;public String insertUser(String username, Integer age) {String sql = "INSERT INTO user_tb(name, age) VALUES (?, ?)";int result = jdbcTemplate.update(sql, username, age);return result > 0 ? "success" : "fail";}
}
MyThymeleaf.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><title>My Thymeleaf Template</title>
</head>
<body><h1>Welcome to my Thymeleaf Template</h1><table>姓名:<span th:text="${user.name}"></span><br>性别:<span th:text="${user.age}"></span><br></table><ul th:each="user : ${list}"><li><span th:text="${user.name}"> </span></li><li><span th:text="${user.age}>"></span> </li></ul><!-- Thymeleaf 条件判断--><span th:if="${user.age >= 18}">已经成年了!</span><span th:if="${user.age < 18}">还未成年!</span></body>
</html>
创建Mapper接口
@Mapper
public interface UserMapper {@Select("SELECT * FROM user_tb WHERE id = #{id}")User getUserById(Integer id);
}
相关文章:
Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解
本文将详细介绍如何在Spring Boot项目中整合Thymeleaf模板引擎、JDBC Template和MyBatis,涵盖YAML配置、依赖版本匹配、项目结构设计及代码示例。 一、版本兼容性说明 Spring Boot版本与Java版本对应关系 Spring Boot 2.x:支持Java 8、11(推…...
白玉微瑕:闲谈 SwiftUI 过渡(Transition)动画的“口是心非”(下)
概述 秃头小码农们都知道,SwiftUI 不仅仅是一个静态 UI 构建框架那么简单,辅以海量默认或自定义的动画和过渡(Transition)特效,我们可以将 App 界面的绚丽升华到极致。 不过,目前 SwiftUI 中的过渡&#x…...
论文:深度可分离神经网络存内计算处理芯片
引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战 深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征ÿ…...
hdrnet,Deep Bilateral Learning for Real-Time Image Enhancement解读
论文、代码和ppt地址:Deep Bilateral Learning for Real-Time Image Enhancement 论文使用的数据集: HDR: 这是一个复杂的摄影管道,包括色彩校正、自动曝光、去雾和色调映射等操作。 MIT “FiveK” 数据集: 这个数据集由 Bychkovsky 等人 提…...
Android系统开发(十五):从 60Hz 到 120Hz,多刷新率进化简史
引言 欢迎来到“帧率探索实验室”!今天,我们要聊聊 Android 11 中对多种刷新率设备的支持。你可能会问:“这和我写代码有什么关系?”别急,高刷新率不仅仅让屏幕更顺滑,还会直接影响用户体验。想象一下&…...
js判断一个数组对象中是否有相同的值
let userTitleLevelList[{title:医生,code:20},{title:老师,code:21}]; 如果一个数组对象格式如上面。如果有一样的对象就提示。即:title和code都是一样的内容、 const hasDuplicate userTitleLevelList.some((item, index, array) > { return array.filter(…...
基于深度学习的视觉检测小项目(十五) 用户的登录界面
用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。 • 基础知识:PySide6(PyQT5)的常用对话…...
redis-排查命中率降低问题
1.命中率降低带来的问题 高并发系统,当命中率低于平常的的运行情况,或者低于70%时,会产生2个影响。 有大量的请求需要查DB,加大DB的压力;影响redis自身的性能 不同的业务场景,阈值不一样,一般…...
ui文件转py程序的工具
源博客连接: PyCharm中利用外部工具uic转成的py文件,里面全是C代码,并非python类型的代码,导致大量报错。。。_pyside6-uic为什么把ui转为了c-CSDN博客 如果想把ui文件转为py文件,首先设置pycharm的外部工具…...
Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案
作者:Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商, 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点,能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...
Oracle 数据库常见字段类型大全及详细解析
在工作期间会遇到数据库建表的业务,经常会使用复制粘帖等操作,而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型,根据不同的数据需求,可以选择不同的字段类型来存储数据。 文章目录 一、字符类型(Char…...
U3D的.Net学习
Mono:这是 Unity 最初采用的方式,它将 C# 代码编译为中间语言 (IL),然后在目标平台上使用虚拟机 (VM) 将其转换为本地机器码执行。 IL2CPP:这是一种较新的方法,它会将 C# 代码先编译为 C 代码,再由 C 编译器…...
Tomcat下载配置
目录 Win下载安装 Mac下载安装配置 Win 下载 直接从官网下载https://tomcat.apache.org/download-10.cgi 在圈住的位置点击下载自己想要的版本 根据自己电脑下载64位或32位zip版本 安装 Tomcat是绿色版,直接解压到自己想放的位置即可 Mac 下载 官网 https://tomcat.ap…...
adb常用指令(完整版)
1、adb devices 查看是否连接到设备 2、adb install [-r] [-s] 安装app,-r强制,-s安装sd卡上 3、adb uninstall [-k] 卸载app,-k保留配置和参数 4、adb push 把本地文件上传设备 5、adb pull 下载文件到本地 6、cd D:\sdk\platform-tool…...
大数据学习(36)- Hive和YARN
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
C# ASP.NET MVC项目内使用ApiController
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。 using System.Web.Http;namespace PrivilegeManager {public class WebApiConfig{public static void Register(HttpConfiguration config){config.MapHttpAttributeRoutes();config.Route…...
Kafka 入门与应用实战:吞吐量优化与与 RabbitMQ、RocketMQ 的对比
前言 在现代微服务架构和分布式系统中,消息队列作为解耦组件,承担着重要的职责。它不仅提供了异步处理的能力,还能确保系统的高可用性、容错性和扩展性。常见的消息队列包括 Kafka、RabbitMQ 和 RocketMQ,其中 Kafka 因其高吞吐量…...
“推理”(Inference)在深度学习和机器学习的语境
“推理”(Inference)在深度学习和机器学习的语境中,是指使用经过训练的模型对新数据进行预测的过程。将其简单地理解为“模型的应用阶段”。在这一阶段,我们不再进行模型训练,而是利用已训练好且保存下来的模型来获取对…...
字节腾讯阿里大厂面经汇总:Java集合(容器)大厂面试题及参考答案
ArrayList 的扩容机制以及删除操作的时间复杂度 ArrayList 是 Java 中非常常用的一个集合类,它是基于数组实现的动态数组。当我们创建一个 ArrayList 时,如果不指定初始容量,它会有一个默认的初始容量(通常是 10)。当我们向 ArrayList 中添加元素时,如果元素的数量达到了…...
数据结构(初阶)(一)----算法复杂度
算法复杂度 算法复杂度数据结构算法算法效率复杂度的概念 数据结构 数据结构(Data Structure)是计算机存储、组织数据的⽅式,指相互之间存在⼀种或多种特定关系的数据元素的集合。没有⼀种单⼀的数据结构对所有⽤途都有⽤,所以我们要学各式各样的数据结…...
突破下载瓶颈:3个鲜为人知的ComfyUI加速方案,速度提升300%的秘密
突破下载瓶颈:3个鲜为人知的ComfyUI加速方案,速度提升300%的秘密 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and…...
C++ 模板元编程工程应用
C模板元编程:工程实践中的编译期魔法 在现代C开发中,模板元编程(TMP)通过编译期计算将复杂逻辑转移到代码生成阶段,显著提升了运行时效率与代码可维护性。从类型安全的容器到高性能数学库,TMP已成为工程领…...
S-UI前端工程化:ESLint与Prettier代码质量保障
S-UI前端工程化:ESLint与Prettier代码质量保障 还在为代码风格混乱、团队协作困难而头疼吗?S-UI作为专业的代理面板项目,通过完善的工程化配置确保了代码质量。本文将为你解析如何在类似项目中配置ESLint和Prettier,打造规范的开…...
3步构建数字记忆堡垒:开源工具GetQzonehistory数据留存全攻略
3步构建数字记忆堡垒:开源工具GetQzonehistory数据留存全攻略 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字时代,我们的生活轨迹日益依赖在线平台&#…...
BES-XGBoost多变量时间序列预测的‘秃鹰搜索优化算法‘与交叉验证抑制过拟合问题的Mat...
基于秃鹰搜索优化算法优化XGBoost(BES-XGBoost)的多变量时间序列预测 BES-XGBoost多变量时间序列 采用交叉验证抑制过拟合问题 优化参数为迭代次数、最大深度和学习率 matlab代码,注:暂无Matlab版本要求 -- 推荐 2016B 版本及以上 注:采用 XG…...
Linunx常用命令
一. 通用1.1系统单元启动# 创建系统用户,不允许登录,不创建 home 目录 sudo useradd -r -s /sbin/nologin xxl-job#将 /data/middleware/xxl-job 目录的归属权改为 xxl-job 用户: sudo chown -R xxl-job:xxl-job /data/middleware/xxl-job#检…...
NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的5个关键技术维度
NVIDIA Profile Inspector深度解析:解锁显卡隐藏性能的5个关键技术维度 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector作为一款功能强大的显卡配置工具࿰…...
5个核心功能让你效率提升:MongoDB Compass实战指南
5个核心功能让你效率提升:MongoDB Compass实战指南 【免费下载链接】compass The GUI for MongoDB. 项目地址: https://gitcode.com/gh_mirrors/com/compass MongoDB Compass作为官方可视化管理工具,正在彻底改变开发者与MongoDB交互的方式。通过…...
Z-Image-Turbo-辉夜巫女镜像维护:模型更新、日志轮转与服务健康监控方案
Z-Image-Turbo-辉夜巫女镜像维护:模型更新、日志轮转与服务健康监控方案 1. 引言 如果你正在使用基于Xinference部署的Z-Image-Turbo-辉夜巫女文生图模型服务,并且通过Gradio界面来生成那些精美的辉夜巫女图片,那么这篇文章就是为你准备的。…...
效率倍增:用快马打造Ollama多模型对比测试工具
最近在折腾本地大模型时,发现Ollama虽然能方便地运行多个模型,但每次想对比不同模型的表现都得手动切换,特别影响效率。于是琢磨着做个工具来提升测试效率,顺便把实现过程记录下来分享给大家。 需求痛点分析 本地测试不同模型时&a…...
