Spring Boot 整合 mybatis (全网最简单教程)

spring boot 整合mybatis

  1. 创建项目勾选 mybatis 项目依赖
  2. 创建 entity 实体类包,在包下创建实体类,注意实体类的属性名必须对应数据库的字段名
  3. 创建 mapper 包,在包下创建 mapper 接口,接口里写上所要实现的方法,不能有方法体
  4. 在resource文件下创建 mybatis 文件夹,在 mybatis文件夹下创建 mapper 、config 两个文件夹,分别来存放 mybatis 的配置文件(config下) mybatis-config,和存放 mapper 的配置,注意这里的 mapper.xml 文件名必须和mapper接口名一致
  5. 在 mapper.xml下编写mapper配置
  <?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="com.server.vue.mapper.UserMapper">
           <!--绑定接口,namespace地址为要调用数据库的接口-->
           <select id="getEmpById" resultType="com.server.vue.entity.User">
             select * from user.buy where Id = #{id}
           </select>
       
           <insert id="insert">
             insert into user.buy(id,shoppingname) values (${id},#{shopping})
           </insert>
       </mapper>

首先,mapper 的namespace 对应着的是mapper接口,然后写 数据库语句,注意每个数据库操作的标签中的 id 必须对应着mapper接口中的方法名,即方法名必须和id一致,然后注意 select 语句的resultType 必须对应着实体类,这样才能输出,insert,delete、update没有返回值就不用写。
6. 编写配置文件,删除原有的 application.properties , 编写application.yml ,在里面配置上

pring:
     profiles:
       active: dev
表示生效的配置文件是application-dev.yml

再在同目录下创建 application-dev.yml:

server:
     port: 8082
   spring:
     datasource:
       username: root
       password: 1528303964
       url: jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
       driver-class-name: com.mysql.jdbc.Driver
   mybatis:
     mapper-locations: classpath:/mybatis/mapper/*.xml
     config-location: classpath:/mybatis/config/mybatis-config.xml
     type-aliases-package: src/main/java/com/server/vue/entity
  • 先指定端口
  • 再指定数据库的配置,注意url中端口号后面代表的是表名,然后最后需要加上时间配置信息 serverTimezone=UTC
  • 最后指定mybatis配置,mapper-locations 的值是 mapper 的配置文件路径,由于可能存在多个文件,故这里用 * 匹配所有xml文件,config-location 的值是config的配置文件路径,最后指定 type-aliases-package 的值为实体类包名即可
  1. 在 mybatis-config下编写文件
   <?xml version="1.0" encoding="UTF-8"?>
       <!DOCTYPE configuration
               PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
               "http://mybatis.org/dtd/mybatis-3-config.dtd">
       <configuration>
         <!--这里写mybatis的其他配置,此教程下不需要-->
       </configuration>
  1. 最后在 mapper 接口方法名上加上注解 @Mapper 表示这是一个mapper,并且在启动类上加上注解
    @MapperScan({这里写mapper包名}),让程序扫描到mapper。

  2. 创建controller来进行测试,
    package com.server.vue.controller;

    import com.server.vue.entity.User;
    import com.server.vue.mapper.UserMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.*;
    @ResponseBody
    @Controller
    public class test {
        @Autowired
        UserMapper userMapper;
        
        @RequestMapping("/test/{id}")
        public User getEmpById(@PathVariable Integer id){
            return userMapper.getEmpById(id);
        }
        @RequestMapping("test/{id}/{shopping}")
        public void insert(@PathVariable Integer id,@PathVariable String shopping)
        {
            User user=new User();
            user.setId(id);
            user.setUsername(shopping);
            userMapper.insert(user);
        };
    }
    
    • 先创建mapper对象,并用 @Autowired 自动注入
    • 然后编写测试方法,这里用的是根据id查询数据库的信息,所以要从url上获得id,即
      @RequestMapping("/test/{id}"),在方法参数列表上加上 @PathVariable 表示当前参数是从url上获得的,
      最后 执行mapper接口中的查询函数并传入参数,当程序运行到这里,程序会去寻找mapper下的方法名,由于,mapper已经映射到了mybatis的配置文件上(mapper.xml),所以会去扫描xml文件,当寻找到id为当前方法名的标签时,即进行数据库操作。
    • 测试能准确得出结果
  3. 目录结构

  4. 源码地址

https://github.com/ADRK12138/java-spring-boot-mybatis/tree/master

发布了29 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42568510/article/details/98510734
今日推荐