spring-boot整合mybatis(xml方式)

本文介绍如何在Spring Boot项目中整合MyBatis框架,包括引入依赖、创建实体类及Mapper接口、配置XML映射文件及yml配置,并提供单元测试示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring-boot整合mybatis

  1. 引入相关依赖
		<!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        
        <!--druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
  1. 创建实体类

1.可以通过手动去创建entity
2.在pycharm中连接数据库,然后反向生成pojo类
在这里插入图片描述

在这里插入图片描述
生成的是实体类如下:

package com.heu.mall.mall_order.entity;
import lombok.Data;
/**
 * @author wsq
 */
@Data
public class Air {
  private Integer id;

  private Integer districId;

  private java.util.Date monitorTime;

  private Integer pm10;

  private Integer pm25;

  private String monitoringStation;

  private java.util.Date lastModifyTime;
}

  1. 构建实体类的mapper接口
package com.heu.mall.mall_order.mapper;
import com.heu.mall.mall_order.entity.Air;
import java.util.List;
/**
 * @author wsq
 */
public interface AirMapper {
    /**
     * 返回所有数据
     * @return
     */
    List<Air> findAll();
}

为了使mybatis能够发现扫描到mapper类,需在根应用上加上MapperScan注解

@SpringBootApplication
// basePackages:mapper接口的包路径
@MapperScan(basePackages = "com.heu.mall.mall_order.mapper")
public class MallOrderApplication {

        public static void main(String[] args) {
            SpringApplication.run(MallOrderApplication.class, args);
        }

}
  1. 创建mapper接口的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对应命名空间-->
<mapper namespace="com.heu.mall.mall_order.mapper.AirMapper">
    <!--resultMap这里使用的是别名的形式,需要设置别名的映射-->
    <select id="findAll" resultType="Air">
        select * from air
    </select>
</mapper>

该步骤中,为了使的我们创建的xml生效,以及解决xml中别名映射、数据库字段转为实体类的驼峰格式属性的问题,我们需要在yml文件中做以下配置:

# mybatis 配置
mybatis:
  # 扫描映射文件
  mapper-locations: classpath:mapper/*.xml
  # 别名扫描的包
  type-aliases-package: com.heu.mall.mall_order.entity
  # mysql中字段是"_"分割,而我们程序中是驼峰的形式
  configuration:
    map-underscore-to-camel-case: true
  1. 测试
    首先,我们需要给项目配置好数据库连接,将如下配置加入application.yml文件中:
# 数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.56.101:3306/mall?serverTimezone=UTC
    type: com.alibaba.druid.pool.DruidDataSource
    username: root
    password: root

然后,针对mapper接口实现单元测试,在spring-boot中我们可以轻松完成单元测试,右键Mapper接口名 -> Go To -> Test,就可以在我们Test包路径下生成对应的测试文件,测试代码如下:

package com.heu.mall.mall_order.mapper;
import com.heu.mall.mall_order.MallOrderApplicationTests;
import com.heu.mall.mall_order.entity.Air;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;

// MallOrderApplicationTests 为整个应用的根测试,默认是包级别保护的,所以我们需要将其访问权限修改为public
// public class MallOrderApplicationTests{} 
class AirMapperTest extends MallOrderApplicationTests {
    @Autowired
    private AirMapper airMapper;
    @Test
    public void findAll(){
        List<Air> all = airMapper.findAll();
        for (Air air : all) {
            System.out.println(air);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值