在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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |