练习小记2:SpringBoot整合MyBatis
Posted hjwg8
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了练习小记2:SpringBoot整合MyBatis相关的知识,希望对你有一定的参考价值。
本文主要介绍SpringBoot整合MyBatis的初步过程以及需要注意的细节。
SpringBoot简介
官网https://spring.io/projects/spring-boot/
?
MyBatis简介
官网:https://mybatis.org/mybatis-3/zh/index.html
MyBatis的优势:
历史发展
MyBatis是由Ibatis发展而来的,Ibatis1.x和Ibatis2.x,都称为Ibatis,在Ibatis3.x版本及以后都称为:MyBatis
在软件三层架构中的位置
MyBatis位于软件三层架构中的Dao层,即MyBatis主要是和数据库打交道!
MyBatis到底是啥?
What is MyBatis?
MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings.?MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.
MyBatis是一流的持久性框架,支持自定义SQL,存储过程和高级映射。 MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。 MyBatis可以使用简单的XML或注释进行配置,并将图元,映射接口和Java POJO(简单的Java对象,实际就是普通JavaBeans)映射到数据库记录。
MyBatis的优势[重点]
MyBatis和原生JDBC、Spring的JdbcTemplate相比有什么优势?
- MyBatis本身是一个框架,除了对数据表的增删改查操作之外,还支持字段映射、缓存机制。
- MyBatis支持动态SQL【根据不同的参数,可以拼接成不同的SQL】
- MyBatis支持java代码【专注于处理业务逻辑】和SQL语句【专注于处理数据】分离
- MyBatis还可以将表的关联关系直接映射为POJO对象的关联关系。
- MyBatis是一个半自动化(手写SQL)的ORM【Object Relation Mapping】框架。
?
运行原理
其他
关于具体事例,SSM的整合,逆向工程,有空详细的写几篇文章…这里不多赘述。
?
整合步骤
准备数据库以及表
导入依赖
导入mybatis、mysql、AlibabaDruid连接池的maven依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>?
修改SpringBoot的配置文件为application.yml
?
#配置数据源
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
#springboot整合mybatis
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.kjlw.entity?
创建实体类
?
创建Mapper层接口以及映射文件
创建Service层接口以及实现类
创建Controller层接口
在SpringBoot主启动类上添加注解扫描
?
启动并测试
略
?
注意事项
- 传统的ssm整合中Mapper层的接口与映射文件应在同一个包下(通常为Mapper包),但是在SpringBoot与MyBatis整合中,如果默认将Mapper接口与映射文件都放在同一包下,仍会报错,此时解决方案有两个:
1)在resources目录下建立同样的包名,并将映射文件放入
2)在pom文件中添加以下配置:
以上是关于练习小记2:SpringBoot整合MyBatis的主要内容,如果未能解决你的问题,请参考以下文章
springboot微服务之集成mybatis和mysql整合完整详细版
SpringBoot整合Mybatis方式2:使用注解方式整合Mybatis
SpringBoot 整合其他框架 -- SpringBoot整合Mybatis