经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
从零开始学Spring Boot系列-集成mybatis
来源:cnblogs  作者:代码匠心  时间:2024/3/11 8:52:31  对本文有异议

在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应用中。

  1. plugins {
  2. id 'java'
  3. id 'org.springframework.boot' version '3.2.3'
  4. id 'io.spring.dependency-management' version '1.1.4'
  5. }
  6. group = 'cn.daimajiangxin'
  7. version = '0.0.1-SNAPSHOT'
  8. java {
  9. sourceCompatibility = '17'
  10. targetCompatibility = '17'
  11. }
  12. repositories {
  13. maven { url 'https://maven.aliyun.com/repository/jcenter' }
  14. maven { url 'https://maven.aliyun.com/repository/google' }
  15. maven { url 'https://maven.aliyun.com/repository/central' }
  16. maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
  17. }
  18. dependencies {
  19. implementation 'org.springframework.boot:spring-boot-starter-web'
  20. compileOnly 'org.projectlombok:lombok'
  21. annotationProcessor 'org.projectlombok:lombok'
  22. implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
  23. runtimeOnly 'mysql:mysql-connector-java:8.0.17'
  24. implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
  25. }

在上面的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文件中已经配置了正确的数据库连接信息,例如:

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

创建实体

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

创建Mapper接口和XML文件

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

  1. package cn.daimajiangxin.springboot.learning.mapper;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import org.apache.ibatis.annotations.Mapper;
  4. import java.util.List;
  5. @Mapper
  6. public interface UserMapper {
  7. List<User> findAllUsers();
  8. }

同时,在src/main/resources/mapper/目录下创建对应的XML映射文件,如UserMapper.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.daimajiangxin.springboot.learning.mapper.UserMapper">
  6. <resultMap id="BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
  7. <id property="id" column="id" jdbcType="BIGINT"/>
  8. <result property="name" column="name" jdbcType="VARCHAR"/>
  9. <result property="email" column="email" jdbcType="VARCHAR"/>
  10. <result property="age" column="age" jdbcType="INTEGER"/>
  11. <result property="remark" column="remark" jdbcType="VARCHAR"/>
  12. </resultMap>
  13. <sql id="Base_Column_List">
  14. id,name,email,
  15. age,remark
  16. </sql>
  17. <select id="findAllUsers" resultMap="BaseResultMap">
  18. select
  19. <include refid="Base_Column_List"></include>
  20. from user
  21. </select>
  22. </mapper>

使用Mapper

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

  1. package cn.daimajiangxin.springboot.learning.service;
  2. import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
  3. import cn.daimajiangxin.springboot.learning.model.User;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import java.util.List;
  7. @Service
  8. public class UserService {
  9. private final UserMapper userMapper;
  10. @Autowired
  11. public UserService(UserMapper userMapper) {
  12. this.userMapper = userMapper;
  13. }
  14. public List<User> getAllUsers() {
  15. return userMapper.findAllUsers();
  16. }
  17. // 添加其他业务逻辑方法...
  18. }

创建Controller

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

测试集成效果

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

总结

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


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。
公众号
源文来自:https://daimajiangxin.cn

原文链接:https://www.cnblogs.com/daimajiangxin/p/18063683

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号