springboot2.x優雅的整合mybatis


概述:
通過簡單閱讀mybatis源碼從本質上了解springboot2.x如何優雅的集成mybatis

1.引用包

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
</dependency>

2.引用包

在application.poperties中配置

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=123456
spring.datasource.username=root
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.maximum-pool-size=10
# 配置mapper.xml,支持classpath*的形式
mybatis.mapper-locations=classpath:com/qlshouyu/framework/demo/mapper/*Mapper.xml
mybatis.type-aliases-package=com.qlshouyu.framework.demo.models
# 駝峰轉下划線
mybatis.configuration.map-underscore-to-camel-case=true

3.編寫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.qlshouyu.framework.demo.mapper.UserMapper">
    <select id="getAll" resultType="com.qlshouyu.framework.demo.models.User">
    select * from user
  </select>
</mapper>
public interface  UserMapper {
    List<User> getAll()
}

4.資源打包

在pom.xml的build下面添加以下配置,默認springboot項目不會對xml進行編譯到jar包中,這樣導致mybatis找不到mapper的xml,所以需要以下配置進行編譯打包xml

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
    </resource>
</resources>

5 指定mapper

有兩種方式,兩種方式選一個就行了
第一種:是在mappper接口上面用@Mapper注解告訴mybatis 這個接口就是mybaits接口可以生成數據訪問代理類;
第二種:在入口applicaion類上面添加注解指定mapper接口所在的包@MapperScan(basePackages = "所在包")

如果想知道為什么這樣配置,以及為什么這樣優雅的配置請看視頻教程視頻鏈接;喜歡點個贊哦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM