从零开始学Spring Boot系列-集成mybatis

2024-03-12 0 2,911

在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

总结

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


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。
从零开始学Spring Boot系列-集成mybatis
源文来自:https://daimajiangxin.cn

资源下载此资源下载价格为1小猪币,终身VIP免费,请先
由于本站资源来源于互联网,以研究交流为目的,所有仅供大家参考、学习,不存在任何商业目的与商业用途,如资源存在BUG以及其他任何问题,请自行解决,本站不提供技术服务! 由于资源为虚拟可复制性,下载后不予退积分和退款,谢谢您的支持!如遇到失效或错误的下载链接请联系客服QQ:442469558

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 Java教程 从零开始学Spring Boot系列-集成mybatis http://www.20zxx.cn/816365/xuexijiaocheng/javajc.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务