09-SpringBoot3入门-整合Mybatis

1、简介

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。与 SpringBoot 集成可以简化数据库操作。

2、整合

1)导入依赖

核心:mybatis、mysql、druid

XML 复制代码
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.1</version>
        </dependency>

        <!-- druid启动器的依赖  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>1.2.18</version>
        </dependency>

        <!-- mysql驱动类-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
2)配置数据源

在application.yml中配置数据库连接信息,包括数据库的url、用户名、密码、mybatis的功能配置。

XML 复制代码
server:
  port: 8080
  servlet:
    context-path: /
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      url: jdbc:mysql://localhost:3306/sgu # url
      username: root # 用户名
      password: 123456 # 密码
      driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
  configuration:  # setting配置
    auto-mapping-behavior: full
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  type-aliases-package: com.sgu.pojo # 配置别名
  mapper-locations: classpath:/mapper/*.xml # Mapper.xml位置
3)Emp类

与数据库表对应的实体类

java 复制代码
package com.sgu.pojo;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 满堂花醉三千客,一剑寒霜十四州。
 *
 * @Author 中瑞
 * @Date 2025/3/28 23:20
 */

@Data
public class Emp {
 private Integer empno;     // 员工编号
 private String ename;      // 员工姓名
 private String job;        // 职位
 private Integer mgr;       // 上级经理编号
 private Date hiredate;     // 入职日期
 private BigDecimal sal;    // 薪水
 private BigDecimal comm;   // 佣金
 private Integer deptno;    // 部门编号
}
4)EmpMapper接口

实现与数据库表的交互

java 复制代码
package com.sgu.mapper;

import com.sgu.pojo.Emp;
import java.util.List;

/**
 * 满堂花醉三千客,一剑寒霜十四州。
 *
 * @Author 中瑞
 * @Date 2025/3/30 13:55
 */

public interface EmpMapper {
	List<Emp> queryAll();
}
5)EmpMapper.xml

Mapper接口的SQL实现,位置:src/main/resources/mapper

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace = 接口的全限定符 -->
<mapper namespace="com.sgu.mapper.EmpMapper">
    <select id="queryAll" resultType="emp">
        select * from emp
    </select>
</mapper>
6)启动类添加@MapperScan注解

用于扫描和注册Mapper接口

java 复制代码
package com.sgu;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 满堂花醉三千客,一剑寒霜十四州。
 *
 * @Author 中瑞
 * @Date 2025/3/30 14:01
 */

@MapperScan("com.sgu.mapper") //mapper接口扫描配置
@SpringBootApplication
public class MainApplication {
	public static void main(String[] args) {
		SpringApplication.run(MainApplication.class,args);
	}
}
7)EmpController类

通过依赖注入实例化Mapper接口,调用其中的方法进行数据库操作

java 复制代码
package com.sgu.controller;

import com.sgu.mapper.EmpMapper;
import com.sgu.pojo.Emp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 满堂花醉三千客,一剑寒霜十四州。
 *
 * @Author 中瑞
 * @Date 2025/3/28 23:26
 */

@RestController
@RequestMapping("emp")
public class EmpController {
	@Autowired
	private EmpMapper empMapper;

	// 查询员工
	@GetMapping("query")
	public List<Emp> queryAll() {
		return empMapper.queryAll();
	}
}

注意:druid的兼容性问题!参考:07-SpringBoot3入门-整合druid连接池-CSDN博客

3、测试

启动项目,输入地址:

http://localhost:8080/emp/query

4、参考

149-springboot-mybatis整合和配置_哔哩哔哩_bilibili

相关推荐
空空kkk1 天前
MyBatis——代理Dao方式的增删改查操作
java·数据库·mybatis
2501_941800882 天前
Java高性能搜索引擎与Lucene实战分享:大规模文本索引、检索与优化经验
mybatis
q***42822 天前
SpringCloud-持久层框架MyBatis Plus的使用与原理详解
spring·spring cloud·mybatis
北郭guo2 天前
MyBatis框架讲解,工作原理、核心内容、如何实现【从浅入深】让你看完这篇文档对于MyBatis的理解更加深入
java·数据库·mybatis
♡喜欢做梦3 天前
MyBatis XML 配置文件:从配置规范到 CRUD 开发实践
xml·java·java-ee·mybatis
q***69774 天前
Spring Boot与MyBatis
spring boot·后端·mybatis
tanxiaomi4 天前
Spring、Spring MVC 和 Spring Boot ,mybatis 相关面试题
java·开发语言·mybatis
q***96584 天前
Spring Boot 集成 MyBatis 全面讲解
spring boot·后端·mybatis
p***93034 天前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
chxii4 天前
在 MyBatis 中开启 SQL 日志
java·数据库·mybatis