SpringBoot整合篇 01、Springboot整合Mybatis

举报
长路 发表于 2022/11/28 19:45:00 2022/11/28
【摘要】 文章目录前言一、快速使用1.1、导入坐标mybatis启动器1.2、创建一个实体类(方便后面使用)1.3、application.yml配置数据源等1.4、DAO与Mapper配置参考文章 前言 本篇博客是SpringBoot整合Mybatis,若文章中出现相关问题,请指出! 所有博客文件目录索引:博客目录索引(持续更新) 一、快速使用 1.1、导入坐标mybatis启动器 第一个是mybatis

@[toc]

前言

本篇博客是SpringBoot整合Mybatis,若文章中出现相关问题,请指出!

所有博客文件目录索引:博客目录索引(持续更新)

一、快速使用

1.1、导入坐标mybatis启动器

第一个是mybatis的springboot启动器,第二个是lombok插件主要用来简化pojo方法

<!--   mybatis   -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>
<!--    lombok插件    -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>compile</scope>
</dependency>


1.2、创建一个实体类(方便后面使用)

image-20210415012819939

image-20210415012117089

@Data
public class User {
    private BigInteger id;
    private BigInteger roleId;
    private String username;
    private String password;
    private String salt;
    private String email;
    private String phoneNum;
    private BigDecimal accountMoney;

}


1.3、application.yml配置数据源等

数据源不陌生吧,分别为用户名、jdbc连接mysql数据源地址、密码、驱动类。

下面的是对应的实体类包路径设置以及对应的mapper映射位置。

# 配置mybatis数据源
spring:
  datasource:
    username: root
    url: jdbc:mysql://localhost:3306/dj.smartparking.rdb?setTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

# 整合mybatis,实体类包配置和mapper映射地址
mybatis:
  type-aliases-package: com.changlu.pojo
  mapper-locations: classpath:mybatis/mapper/*.xml

image-20210415011646302

  • mapper-locations对应路径为resources目录下。


1.4、DAO与Mapper配置

①在springboot启动类上使用注解@MapperScan,后面跟上对应的mapper包路径,表示自动扫描该包下的dao

@MapperScan("com.jssvc.smartparking.mapper")  //扫描mapper包下的dao接口
@SpringBootApplication
public class SmartparkingWebApplication {

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

}
  • 使用@Repository在dao上,需要在启动类上添加@MapperScan,如上。

②接着到该mapper目录中创建dao即可。

image-20210415012021925

@Repository  //创建bean实例并交由spring管理
public interface UserMapper {

    User getUser(String username);

}

③对应mapper配置内容如下

image-20210415012406359

主要是数据库字段名与pojo实体类中的字段名不相同,所以使用了resultMap来进行别名设置

<?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">

<!-- 设置指定的namespace -->
<mapper namespace="com.jssvc.smartparking.mapper.UserMapper">

    <!-- 定义一个结果集,保证pojo中的字段与数据库相符   -->
    <resultMap id="userResultMap"  type="com.jssvc.smartparking.pojo.User">
        <!-- 用id属性来映射主键字段 -->
        <id property="id" column="id"/>
        <result property="roleId" column="role_id"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="salt" column="salt"/>
        <result property="email" column="email"/>
        <result property="phoneNum" column="phonenum"/>
        <result property="accountMoney" column="accountmoney"/>
    </resultMap>

    <!--  根据username获取User对象  -->
    <select id="getUser" resultMap="userResultMap" parameterType="String">
        select * from user where username = #{username}
    </select>

</mapper>

到了这步dao与mapper映射文件都配置完毕了,如何在service类中使用呢?通过使用一个@Autowired来进行自动注入

image-20210415012555006


参考文章

[1]. @Repository 与 @Mapper的区别

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。