【Java从0到架构师】SpringBoot - MyBatis
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相关推荐
- 【Java从0到架构师】MyBatis - 缓存_构造方法
缓存_构造方法 缓存 一级缓存 - SqlSession 二级缓存 开启二级缓存 useCache - 是否开启二级缓存 flushCache - 是否需要清楚缓存 指定构造方法 XML 中指定构造方 ...
- 【Java从0到架构师】MyBatis - dao
dao 使用 MyBatis 实现 dao 层的几种方式 自定义实现类,XML 实现 dao 层 只定义接口类,getMapper + XML 实现 dao 层 只定义接口类,getMapper + ...
- 【Java从0到架构师】MyBatis - 连接池、分页_PageHelper
连接池.分页 集成 druid 连接池 读取外部的配置文件 分页查询 - PageHelper PageHelper 环境配置 PageHelper 使用方法 Java 从 0 到架构师目录:[Jav ...
- 【Java从0到架构师】MyBatis - 增删改、动态 SQL
MyBatis - 增删改.动态 SQL 动态 SQL if 标签 where 标签 sql 标签 foreach 标签 添加 主键设置 批量添加 - 利用 foreach 标签 更新 删除 批量删除 ...
- 【Java从0到架构师】MyBatis - 查询
MyBatis - 查询 数据库事务 (Database Transaction) MyBatis 使用准备 依赖 配置文件 创建 Session MyBatis 查询 实体映射 字段映射 - res ...
- 【Java从0到架构师】MyBatis - 多表查询_延迟加载
多表查询_延迟加载 多表关系 一对一 association 标签 + JOIN 实现一对一 一对多 \ 多对一 collection 标签 + LEFT JOIN 实现一对多 多对多 多对多的本质: ...
- 【Java从0到架构师(1),Java中高级面试题总结(全面)
JSP 九大内置对象 MySQL 基础 + 多表查询 [Java从0到架构师]MySQL 基础 MySQL MySQL 的使用步骤 数据库的内部存储细节 GUI 工具 SQL 语句 DDL 语句 DD ...
- 【Java从0到架构师】RocketMQ 使用 - 集成 SpringBoot
RocketMQ 消息中间件 集成 SpringBoot 入门案例 生产消息类型 - 同步.异步.一次性 消费模式 - 集群.广播 延时消息 设置消息标签 设置消息的 Key 自定义属性设置 消息过滤 ...
- 【Java从0到架构师】SpringBoot - SpringMVC
SpringBoot - SpringMVC SpringMVC 的配置 文件上传功能 文件下载 - 以附件形式下载 静态资源访问 静态资源访问 - 映射 静态资源访问 - webjars Java ...
最新文章
- 十个你需要在 PHP 7 中避免的坑
- Python 中的hash
- 删除我的电脑里面软件快捷方式
- java 中组合与复用_Java 代码复用(组合与继承)
- 微信小程序教程02:App(Object)和Page(Object) 构造器介绍
- php cdi_教程:编写自己的CDI扩展
- MacBook/MacOS/Mac OS 关于启动/停止/重启服务(进程/程序)的命令
- TS Interface(接口)
- 物联网技术对于智慧生活24小时改变
- ecall 方法必须打包到系统模块中_基于SpringBoot+Vue+Mysql开发的进销存管理系统
- Dialog的半透明背景的灰度
- 一个Python 爬虫程序
- MTK闭源wifi驱动使用方法
- 一元二次方程求根。当a=0时,输出“It is not a quadratic equation \n“;当a不等于0时,输出“一对共轭复根: “x1 = %.2f+%.2fi, x2 = %.2f
- HUSTOJ搭建后为了方便作为Judger调用进行的一些修改操作
- ——大牛很通俗地介绍《信号与系统》
- LFS : 制作分区和挂载分区
- IDG刘雨坤:关于SaaS业务七点经验
- iOS传感器:利用磁力计完成一个AR场景应用
- centos 调教日记