作者丨武哥
来源丨武哥聊编程
1. MyBatis 介绍大家都知道,MyBatis 框架是一个持久层框架,是 Apache 下的顶级项目 。Mybatis 可以让开发者的主要精力放在 sql 上,通过 Mybatis 提供的映射方式,自由灵活的生成满足需要的 sql 语句 。使用简单的 XML 或注解来配置和映射原生信息,将接口和 JAVA 的 POJOs 映射成数据库中的记录,在国内可谓是占据了半壁江山 。本文主要通过两种方式来对 Spring Boot 集成 MyBatis 做一讲解 。重点讲解一下基于注解的方式 。因为实际项目中使用注解的方式更多一点,更简洁一点,省去了很多 xml 配置(这不是绝对的,有些项目组中可能也在使用 xml 的方式) 。
2. MyBatis 的配置2.1 依赖导入Spring Boot 集成 MyBatis,需要导入 mybatis-spring-boot-starter 和 MySQL 的依赖,这里我们使用的版本时 1.3.2,如下:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope></dependency>
我们点开 mybatis-spring-boot-starter 依赖,可以看到我们之前使用 Spring 时候熟悉的依赖,就像我在课程的一开始介绍的那样,Spring Boot 致力于简化编码,使用 starter 系列将相关依赖集成在一起,开发者不需要关注繁琐的配置,非常方便 。
<!-- 省去其他 --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId></dependency><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId></dependency>
2.2 properties.yml配置我们再来看一下,集成 MyBatis 时需要在 properties.yml 配置文件中做哪些基本配置呢?
# 服务端口号server: port: 8080# 数据库地址datasource: url: localhost:3306/blog_testspring: datasource: # 数据库配置 driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://${datasource.url}?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10 username: root password: 123456 hikari: maximum-pool-size: 10 # 最大连接池数 max-lifetime: 1770000mybatis: # 指定别名设置的包为所有entity type-aliases-package: com.itcodai.course10.entity configuration: map-underscore-to-camel-case: true # 驼峰命名规范 mApper-locations: # mapper映射文件位置 - classpath:mapper/*.xml
我们来简单介绍一下上面的这些配置:关于数据库的相关配置,我就不详细的解说了,这点相信大家已经非常熟练了,配置一下用户名、密码、数据库连接等等,这里使用的连接池是 Spring Boot 自带的 hikari,感兴趣的朋友可以去百度或者谷歌搜一搜,了解一下 。
这里说明一下 map-underscore-to-camel-case: true,用来开启驼峰命名规范,这个比较好用,比如数据库中字段名为:user_name,那么在实体类中可以定义属性为 userName (甚至可以写成 username,也能映射上),会自动匹配到驼峰属性,如果不这样配置的话,针对字段名和属性名不同的情况,会映射不到 。
3. 基于 xml 的整合使用原始的 xml 方式,需要新建 UserMapper.xml 文件,在上面的 application.yml 配置文件中,我们已经定义了 xml 文件的路径:classpath:mapper/*.xml,所以我们在 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.itcodai.course10.dao.UserMapper"> <resultMap id="BaseResultMap" type="com.itcodai.course10.entity.User"> <id column="id" jdbcType="BIGINT" property="id" /> <result column="user_name" jdbcType="VARCHAR" property="username" /> <result column="password" jdbcType="VARCHAR" property="password" /> </resultMap> <select id="getUserByName" resultType="User" parameterType="String"> select * from user where user_name = #{username} </select></mapper>
推荐阅读
- Springboot集成阿里云对象存储OSS
- Springboot集成阿里云视频点播
- SpringBoot整合定时器:定时任务不再硬编码,动态定时刷起来
- SpringBoot的可视化接口开发工具
- 15000 字详解 Spring Boot 注解
- Spring IOC容器对Bean实例化的过程详解源码分析
- Jenkins结合SpringCloud+K8S,打通微服一条龙技术讲解
- 框架的本质分析——Spring框架
- Spring MVC 框架搭建配置方法及详解
- SpringBoot:拒绝大文件,夏天到了,来给jar包瘦个身