SpringBoot - MyBatis

  • 集成 MyBatis
    • 引入依赖
    • 数据源配置 - 源码
    • MyBatis 配置 - 源码
    • 扫描 Dao
    • MyBatis 主配置 - XML、注解、application
      • XML配置
      • 注解
      • application
  • starter 的命名规范

Java 从 0 到架构师目录:【Java从0到架构师】学习记录

Gitee 代码:https://gitee.com/szluyu99/mj_java_frame/tree/master/04_SpringBoot

集成 MyBatis

示例代码:SpringBoot 集成 MyBatis

引入依赖

参考:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

一般来说,SpringBoot 认为常用的库都会在 parent 项目中锁定了版本,例如 mysql

<!-- 需要写版本号 -->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version>
</dependency><!-- 不需要填写版本号-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency><!-- 需要填写版本号 -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.1</version>
</dependency>

数据源配置 - 源码

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: rooturl: jdbc:mysql://localhost:3306/test_mybatis?serverTimezone=UTCdruid:initial-size: 5max-active: 10

数据源的相关配置,可以参考:

  • spring-boot-autoconfigure.jar 中的 DataSourceProperties 类


  • druid-spring-boot-autoconfigure.jar 中的 DruidDataSourceWrapper 类

MyBatis 配置 - 源码

mybatis:
#  mapper-locations: classpath:/mappers/*.xml
#  config-location: classpath:mybatis-config.xmltype-aliases-package: com.mj.domainconfiguration:map-underscore-to-camel-case: trueuse-generated-keys: true

MyBatis 相关的配置,可以参考:

  • mybatis-spring-boot-autoconfigure.jar 中的 MybatisProperties 类

扫描 Dao

@SpringBootApplication
@MapperScan("com.mj.dao")
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

MyBatis 主配置 - XML、注解、application

useGeneratedkeys 除了可以在 mapper 中单独配置,也可以进行全局统一配置(3种方式)
下面的配置中包含了 mapUnderscoreToCamelCase 和 useGeneratedkeys

MyBatis 主配置文件主要有以下三种形式:

  • 使用额外的 XML 文件,然后在 SpringBoot 中引入该 XML(通用)
  • 利用注解实现纯代码进行配置(SpringBoot 专用)
  • application 中进行配置(SpringBoot 专用)

XML配置

在 application 中指定 mybatis 配置文件的位置:

mybatis:config-location: classpath:mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><!-- 使用新生成记录的主键 --><setting name="useGeneratedKeys" value="true"/><!-- 数据库: my_first_name -> Java: myFirstName --><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
</configuration>

注解

@Configuration
public class MyBatisConfig {@Beanpublic ConfigurationCustomizer customizer() {return (configuration) -> {configuration.setMapUnderscoreToCamelCase(true);configuration.setUseGeneratedKeys(true);};}
}

application

mybatis:configuration:map-underscore-to-camel-case: trueuse-generated-keys: true

starter 的命名规范

SpringBoot 官方提供的 starter:spring-boot-starter-*

自定义的 starter(非 SpringBoot 官方):*-spring-boot-starter

参考:官方文档

【Java从0到架构师】SpringBoot - MyBatis相关推荐

  1. 【Java从0到架构师】MyBatis - 缓存_构造方法

    缓存_构造方法 缓存 一级缓存 - SqlSession 二级缓存 开启二级缓存 useCache - 是否开启二级缓存 flushCache - 是否需要清楚缓存 指定构造方法 XML 中指定构造方 ...

  2. 【Java从0到架构师】MyBatis - dao

    dao 使用 MyBatis 实现 dao 层的几种方式 自定义实现类,XML 实现 dao 层 只定义接口类,getMapper + XML 实现 dao 层 只定义接口类,getMapper + ...

  3. 【Java从0到架构师】MyBatis - 连接池、分页_PageHelper

    连接池.分页 集成 druid 连接池 读取外部的配置文件 分页查询 - PageHelper PageHelper 环境配置 PageHelper 使用方法 Java 从 0 到架构师目录:[Jav ...

  4. 【Java从0到架构师】MyBatis - 增删改、动态 SQL

    MyBatis - 增删改.动态 SQL 动态 SQL if 标签 where 标签 sql 标签 foreach 标签 添加 主键设置 批量添加 - 利用 foreach 标签 更新 删除 批量删除 ...

  5. 【Java从0到架构师】MyBatis - 查询

    MyBatis - 查询 数据库事务 (Database Transaction) MyBatis 使用准备 依赖 配置文件 创建 Session MyBatis 查询 实体映射 字段映射 - res ...

  6. 【Java从0到架构师】MyBatis - 多表查询_延迟加载

    多表查询_延迟加载 多表关系 一对一 association 标签 + JOIN 实现一对一 一对多 \ 多对一 collection 标签 + LEFT JOIN 实现一对多 多对多 多对多的本质: ...

  7. 【Java从0到架构师(1),Java中高级面试题总结(全面)

    JSP 九大内置对象 MySQL 基础 + 多表查询 [Java从0到架构师]MySQL 基础 MySQL MySQL 的使用步骤 数据库的内部存储细节 GUI 工具 SQL 语句 DDL 语句 DD ...

  8. 【Java从0到架构师】RocketMQ 使用 - 集成 SpringBoot

    RocketMQ 消息中间件 集成 SpringBoot 入门案例 生产消息类型 - 同步.异步.一次性 消费模式 - 集群.广播 延时消息 设置消息标签 设置消息的 Key 自定义属性设置 消息过滤 ...

  9. 【Java从0到架构师】SpringBoot - SpringMVC

    SpringBoot - SpringMVC SpringMVC 的配置 文件上传功能 文件下载 - 以附件形式下载 静态资源访问 静态资源访问 - 映射 静态资源访问 - webjars Java ...

最新文章

  1. 十个你需要在 PHP 7 中避免的坑
  2. Python 中的hash
  3. 删除我的电脑里面软件快捷方式
  4. java 中组合与复用_Java 代码复用(组合与继承)
  5. 微信小程序教程02:App(Object)和Page(Object) 构造器介绍
  6. php cdi_教程:编写自己的CDI扩展
  7. MacBook/MacOS/Mac OS 关于启动/停止/重启服务(进程/程序)的命令
  8. TS Interface(接口)
  9. 物联网技术对于智慧生活24小时改变
  10. ecall 方法必须打包到系统模块中_基于SpringBoot+Vue+Mysql开发的进销存管理系统
  11. Dialog的半透明背景的灰度
  12. 一个Python 爬虫程序
  13. MTK闭源wifi驱动使用方法
  14. 一元二次方程求根。当a=0时,输出“It is not a quadratic equation \n“;当a不等于0时,输出“一对共轭复根: “x1 = %.2f+%.2fi, x2 = %.2f
  15. HUSTOJ搭建后为了方便作为Judger调用进行的一些修改操作
  16. ——大牛很通俗地介绍《信号与系统》
  17. LFS : 制作分区和挂载分区
  18. IDG刘雨坤:关于SaaS业务七点经验
  19. iOS传感器:利用磁力计完成一个AR场景应用
  20. centos 调教日记

热门文章

  1. Hash碰撞的解决方案
  2. QFileInfoList
  3. foxmail占cpu 100%解决办法
  4. java年度总结自我认知,java自我评价
  5. 在AWS RDS SQL Server中恢复数据
  6. mysql mvcc 的理解
  7. 图片--Android加载图片导致内存溢出(Out of Memory异常)
  8. linux系统编程综合练习-实现一个小型的shell程序(四)
  9. ios 读取各种类型文件
  10. 最短路径(单源 dijkstra算法-邻接矩阵)