在Spring Boot的应用开发中,MyBatis是一个非常流行的持久层框架,它支持定制化SQL、存储过程以及高级映射。在本篇文章中,我们将学习如何在Spring Boot项目中集成MyBatis,以便通过MyBatis进行数据库操作。

添加MyBatis依赖

首先,我们需要在项目中添加MyBatis的依赖。在Spring Boot中,我们通常会使用Gradle或Maven作为构建工具来管理项目依赖。这里,我们将以Gradle为例,展示如何添加MyBatis的依赖。

打开项目的build.gradle文件,我们需要添加MyBatis Spring Boot Starter的依赖项。这个依赖项会帮助我们更容易地将MyBatis集成到Spring Boot应用中。

plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
} group = 'cn.daimajiangxin'
version = '0.0.1-SNAPSHOT' java {
sourceCompatibility = '17'
targetCompatibility = '17'
} repositories {
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
} dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java:8.0.17'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
}

在上面的build.gradle文件中,我们添加了以下依赖项:

  • spring-boot-starter-web:Spring Boot Web Starter,它包含了构建Web应用所需的基本依赖。
  • mybatis-spring-boot-starter:MyBatis Spring Boot Starter,它提供了MyBatis和Spring Boot集成的简化配置。
  • mysql-connector-java:MySQL数据库驱动,用于连接MySQL数据库。

配置数据源和MyBatis

配置好依赖后,你可以通过Gradle的命令行工具来同步项目依赖,或者在IDE中自动同步。一旦依赖同步完成,你就可以开始编写Mapper接口和XML映射文件,并使用MyBatis来操作数据库了。

请确保你的application.properties或application.yml文件中已经配置了正确的数据库连接信息,例如:

# datasource 配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=你的数据库用户名
spring.datasource.password=你的数据库密码
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true # MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=cn.daimajiangxin.springboot.learning.model

创建实体

参考上一篇文章,从零开始学Spring Boot系列-集成MySQL中创建的User类。

创建Mapper接口和XML文件

在项目的src/main/java目录下,创建mapper 的一个package ,再创建Mapper接口。例如,创建一个UserMapper.java接口:

package cn.daimajiangxin.springboot.learning.mapper;

import cn.daimajiangxin.springboot.learning.model.User;
import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper
public interface UserMapper {
List<User> findAllUsers();
}

同时,在src/main/resources/mapper/目录下创建对应的XML映射文件,如UserMapper.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="cn.daimajiangxin.springboot.learning.mapper.UserMapper"> <resultMap id="BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="email" column="email" jdbcType="VARCHAR"/>
<result property="age" column="age" jdbcType="INTEGER"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
</resultMap> <sql id="Base_Column_List">
id,name,email,
age,remark
</sql> <select id="findAllUsers" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"></include>
from user
</select>
</mapper>

使用Mapper

在你的Service类中,可以通过注入Mapper接口来使用MyBatis的功能。例如,在UserService.java中:

package cn.daimajiangxin.springboot.learning.service;

import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
import cn.daimajiangxin.springboot.learning.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; @Service
public class UserService {
private final UserMapper userMapper; @Autowired
public UserService(UserMapper userMapper) {
this.userMapper = userMapper;
} public List<User> getAllUsers() {
return userMapper.findAllUsers();
} // 添加其他业务逻辑方法...
}

创建Controller

参考上一篇文章,从零开始学Spring Boot系列-集成MySQL中创建的UserController 类。

测试集成效果

运行你的Spring Boot应用程序,并通过调用UserService的findAllUsers方法来测试MyBatis的集成效果。你可以通过编写单元测试或使用Postman或apipost等工具来发送HTTP请求,访问来http://localhost:8080/users查看所有用户的列表。

总结

通过以上步骤,我们成功地在Spring Boot项目中集成了MyBatis,并通过编写Mapper接口和XML映射文件,实现了数据库的操作。这只是集成MyBatis的基础示例,你可以进一步探索MyBatis的高级特性,如动态SQL、结果映射等,以满足更复杂的业务需求。同时,结合Spring Boot的其他功能,你可以构建出功能强大且易于维护的应用程序。


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。



源文来自:https://daimajiangxin.cn

从零开始学Spring Boot系列-集成mybatis的更多相关文章

  1. 小代学Spring Boot之集成MyBatis

    想要获取更多文章可以访问我的博客 - 代码无止境. 上一篇小代同学在Spring Boot项目中配置了数据源,但是通常来讲我们访问数据库都会通过一个ORM框架,很少会直接使用JDBC来执行数据库操作的 ...

  2. 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成 ...

  3. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  4. 77. Spring Boot Use Thymeleaf 3【从零开始学Spring Boot】

    [原创文章,转载请注明出处] Spring Boot默认选择的Thymeleaf是2.0版本的,那么如果我们就想要使用3.0版本或者说指定版本呢,那么怎么操作呢?在这里要说明下 3.0的配置在spri ...

  5. (22)Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

    上一篇对过滤器的定义做了说明,也比较简单.过滤器属于Servlet范畴的API,与Spring 没什么关系.     Web开发中,我们除了使用 Filter 来过滤请web求外,还可以使用Sprin ...

  6. 71.mybatis 如何获取插入的id【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 在之前的文章已经讲过spring boot集成mybatis了,但是忘记说一个很重要的知识点了,那就是获取获取主键id,这篇文章补充下,sprin ...

  7. 62. mybatis 使用PageHelper不生效【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 在Spirng Boot中集成了PageHelper,然后也在需要使用分页的地方加入了如下代码: PageHelper.startPage(1,1 ...

  8. (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

    大家在开发的时候,会喜欢jdbcTemplate操作数据库,有喜欢JPA操作数据库的,有喜欢MyBatis操作数据库的,对于这些我个人觉得哪个使用顺手就使用哪个就好了,并没有一定要使用哪个,个人在实际 ...

  9. (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】

    [本文章是否对你有用以及是否有好的建议,请留言] 写后感:博主写这么一系列文章也不容易啊,请评论支持下. 如果看过我之前(35)的文章这一篇的文章就会很简单,没有什么挑战性了. 那么我们先说说这一篇文 ...

  10. 53. spring boot系列合集【从零开始学Spring Boot】

    前40章节的spring boot系列已经打包成PDF在csdn进行发布了,如果有需要的可以进行下载. 下载地址:http://download.csdn.net/detail/linxinglian ...

随机推荐

  1. Windows 核心编程笔记 [2] 字符串

    1. ANSI 和 Unicode Windows 中涉及字符串的函数有两个版本 1)ANSI版本的函数会把字符串转换为Unicode形式,再从内部调用函数的Unicode版本 2)Unicode版本 ...

  2. 【3】VSCode 主题设置推荐,自定义配色方案,修改注释高亮颜色

    相关文章: [一]tensorflow安装.常用python镜像源.tensorflow 深度学习强化学习教学 [二]tensorflow调试报错.tensorflow 深度学习强化学习教学 [三]t ...

  3. 21.10 Python 使用CRC32校验文件

    CRC文件校验是一种用于验证文件完整性的方法,通过计算文件的CRC值并与预先计算的CRC校验值进行比较,来判断文件是否发生变化,此类功能可以用于验证一个目录中是否有文件发生变化,如果发生变化则我们可以 ...

  4. 18.3 NPCAP自定义数据包过滤

    NPCAP 库是一种用于在Windows平台上进行网络数据包捕获和分析的库.它是WinPcap库的一个分支,由Nmap开发团队开发,并在Nmap软件中使用.与WinPcap一样,NPCAP库提供了一些 ...

  5. 8.5 C++ 继承与多态

    C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...

  6. Windows安装MongoDB6.0.2

    环境 Windows 10 MongoDB 6.0.2 配置 下载mongodb 下载地址:https://www.mongodb.com/try/download/community 安装 指定目录 ...

  7. 【算法】【C语言进阶】C语言字符串操作宝藏级别汇总 strtok函数 strstr函数该怎么用?【超详细的使用解释和模拟实现】

    [算法][C语言进阶]C语言字符串操作宝藏级别汇总[超详细的使用解释和模拟实现] 作者: @小小Programmer 这是我的主页:@小小Programmer 在食用这篇博客之前,博主在这里介绍一下其 ...

  8. 新零售SaaS架构:促销系统架构设计

    促销业务概述 什么是促销? 促销是商家用来吸引消费者购物的一种手段,目的是让更多的人知道并购买他们的产品,这样就能卖得更多.促销的方法有很多种,比如,价格优惠.赠品.优惠券.折扣.买一赠一等形式. 特 ...

  9. C#/.NET该如何自学入门?

    前言 随着DotNetGuide技术社区交流群的不断壮大(目前4个群都已经满500人,已开5群现已有180多个小伙伴),越来越多应届生和其他领域的小伙伴加入了我们这个大家庭.在此期间我在个人微信.公众 ...

  10. Hadoop-大数据组件版本号查看

    1.操作系统 cat  /etc/redhat-release ; 2.JDK java -version 3.SCALA scala --version 4.MySQL mysql --versio ...