• 十二、Springboot整合MyBatis


    基于xml文件配置

    1、修改pom文件

    添加MySQL依赖和mybatis-spring-boot-starter模块

     <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.26</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.2.2</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2、配置数据源信息

    
    ##数据源信息配置
    #数据库地址
    spring.datasource.url=jdbc:mysql://localhost:3306/springbootjpa?&serverTimezone=UTC&characterEncoding=utf8
    #数据库用户名
    spring.datasource.username=root
    #数据库密码
    spring.datasource.password=123456
    #数据库驱动
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    #设置包别名(在Mapper映射文件中直接使用实体类名)
    mybatis.type-aliases-package=com.yzh.mybatis.entity
    #告诉系统在哪里去找mapper.xml文件(映射文件)
    mybatis.mapperLocations=classpath:mappers/*.xml
    #在控制台输出SQL语句日志
    logging.level.com.yzh.mybatis.repository=debug
    #让控制器输出的JSON字符串格式更美观
    spring.jackson.serialization.indent-output=true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3、创建实体类

    package com.yzh.mybatis.entity;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.ToString;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @ToString
    public class MyUser {
        private String username;
        private String password;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    4、创建数据访问接口

    package com.yzh.mybatis.repository;
    import java.util.List;
    
    import com.yzh.mybatis.entity.MyUser;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;
    
    /**
     * MyBatis的Mapper映射接口
     */
    @Mapper
    @Repository //不写会在注入时报错,但不影响运行
    public interface MyUserRepository {
    	public List<MyUser> findAll();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    5、创建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.yzh.mybatis.repository.MyUserRepository">
    	<select id="findAll"  resultType="MyUser">
    		select * from user 
    	</select>
    </mapper>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    6、创建业务层

    package com.yzh.mybatis.service;
    import java.util.List;
    import com.yzh.mybatis.entity.MyUser;
    
    public interface MyUserService {
    	public List<MyUser> findAll();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    package com.yzh.mybatis.service;
    import java.util.List;
    
    import com.yzh.mybatis.entity.MyUser;
    import com.yzh.mybatis.repository.MyUserRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class MyUserServiceImpl implements MyUserService{
    	@Autowired
    	private MyUserRepository myUserRepository;
    	@Override
    	public List<MyUser> findAll() {
    		return myUserRepository.findAll();
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    7、创建控制器类

    package com.yzh.mybatis.controller;
    import java.util.List;
    
    import com.yzh.mybatis.entity.MyUser;
    import com.yzh.mybatis.service.MyUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class MyUserController {
    	@Autowired
    	private MyUserService myUserService;
    	@RequestMapping("/findAll")
    	public List<MyUser> findAll(){
    		return myUserService.findAll();
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    8、在应用程序的主类中扫描mapper接口

    package com.yzh.mybatis;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    import java.util.Arrays;
    
    @MapperScan(basePackages ={"com.yzh.mybatis.Repository"})
    @SpringBootApplication
    public class MybatisApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MybatisApplication.class, args);
    //        String[] strings={"1","2"};
    //        System.out.println(Arrays.toString(strings));
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    基于注解

    1、修改application.properties文件

    删除如下配置

    #设置包别名(在Mapper映射文件中直接使用实体类名)
    mybatis.type-aliases-package=com.yzh.mybatis.entity
    #告诉系统在哪里去找mapper.xml文件(映射文件)
    mybatis.mapperLocations=classpath:mappers/*.xml
    
    • 1
    • 2
    • 3
    • 4

    2、删除mapper映射文件

    删除src/main/resources文件夹下的mapper包

    3、修改数据访问接口

    package com.yzh.mybatis.repository;
    import java.util.List;
    
    import com.yzh.mybatis.entity.MyUser;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Select;
    import org.springframework.stereotype.Repository;
    
    /**
     * MyBatis的Mapper映射接口
     */
    //@Mapper
    //@Repository //不写会在注入时报错,但不影响运行
    public interface MyUserRepository {
    	@Select("select * from user")
    	public List<MyUser> findAll();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    高教社杯数模竞赛特辑论文篇-2023年E题:基于小波变换和背包模型的小浪底水库最优监测方案研究(附获奖论文及Python代码实现)
    FOC学习笔记-坐标变换以及仿真验证
    通过海康私有协议Ehome/ISUP协议将海康摄像头、录像机等设备统一接入到LiveNVR Web流媒体平台实现统一汇聚及Web播放等的配置说明,
    ubuntu安装exe微信
    使用Grpc实现高性能PHP RPC服务
    查看创建好的数据库
    【考研数学】六. 三重积分
    2022年施工企业数字化转型思考,施工企业数字化转型之路
    JAVA堆中的对象结构
    【SpringCloud-学习笔记】Docker镜像仓库
  • 原文地址:https://blog.csdn.net/qq_52297656/article/details/126073354