美文网首页
Spring Boot 集成 Mybatis

Spring Boot 集成 Mybatis

作者: Tinyspot | 来源:发表于2022-11-20 07:42 被阅读0次

    1. Mybatis 配置

    1.1 导入依赖包

    <!-- 数据库连接池 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.8</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
    </dependency>
    
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    

    1.2 application.yml 配置

    Mybatis配置:
    mapper-locations:用来指定 mapper.xml 文件的路径
    type-aliases-package:指定MyBatis 需要设置别名的实体类的所在的包
    map-underscore-to-camel-case: 开启驼峰映射配置

    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.example.concrete.dao.entity
      configuration:
        map-underscore-to-camel-case: true
    

    数据库配置

    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://mysql.sqlpub.com:3306/spotlive
        username: xxx
        password: xxx
    

    使用数据库连接池配置

    spring:
      datasource:
        druid:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://mysql.sqlpub.com:3306/spotlive?useUnicode=true&characterEncoding=utf-8&useSSL=false
          username: xxx
          password: xxx
          initial-size: 5
          min-idle: 5
          max-active: 20
          test-on-borrow: true
    

    1.3 配置 mapper 映射文件

    新建文件 resources/mapper/UserMapper.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 namespace="com.concrete.boot.dao.mapper.UserDao">
        <select id="findAll" resultType="User">
            select * from user
        </select>
    </mapper>
    

    添加 Mapper 接口

    public interface UserDao {
        List<User> findAll();
    }
    

    1.4 启动类添加@MapperScan

    在启动类添加@MapperScan,扫描 Mapper 接口所在的包

    @SpringBootApplication(scanBasePackages = "com.example.conboot.starter"/*, exclude = DataSourceAutoConfiguration.class*/)
    @MapperScan(basePackages = "com.concrete.boot.dao.mapper")
    public class ConbootStarterApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConbootStarterApplication.class, args);
        }
    }
    

    2. 总配置方式

    mybatis-config.png

    yml 文件

    mybatis:
      config-location: classpath:mybatis-config.xml
    

    mybatis-config.xml 配置

    <?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>
        
        <settings>
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    
        <typeAliases>
            <!-- <typeAlias type="com.concrete.boot.dao.entity.User" alias="User"/> -->
    
            <!-- 自动配置类的别名-->
            <package name="com.concrete.boot.dao.entity"/>
        </typeAliases>
    
        <mappers>
            <mapper resource="mapper/UserMapper.xml" />
            <!-- <package name="mapper"/> 此配置需要 mapper.xml 与接口名完全一样 -->
        </mappers>
    
    </configuration>
    

    2.1 注意事项

    mybatis:
    # mapper-locations: classpath:mapper/*.xml
      config-location: classpath:mybatis-config.xml
    #  type-aliases-package: com.concrete.boot.dao.entity
    #  configuration:
    #    map-underscore-to-camel-case: true
    

    application.yml中 configuration 和 configLocation 两个属性不能同时存在,否则会报错:
    Property 'configuration' and 'configLocation' can not specified with together

    相关文章

      网友评论

          本文标题:Spring Boot 集成 Mybatis

          本文链接:https://www.haomeiwen.com/subject/jknbxdtx.html