Spring Boot 2.x(四):整合Mybatis的四种方式
前言
目前的大环境下,使用Mybatis
作为持久层框架还是占了绝大多数的,下面我们来说一下使用Mybatis
的几种姿势。
姿势一:零配置注解开发
第一步:引入依赖
首先,我们需要在pom文件中添加依赖:
第二步:配置文件
这里我们采用yml来进行编写,与properties文件相比,yml看起来更加简洁优雅,这里需要注意的是driver-class-name
这个属性我们采用的是com.mysql.cj.jdbc.Driver
而非之前的com.mysql.jdbc.Driver
,如果采用之前包下的Driver
,控制台会打印出一行这样的信息告诉我们去用新的~
第三步:指定MapperScan
首先,我们需要在启动类指定@MapperScan
,这样做就可以不用去挨个的在Mapper
接口中添加@Mapper
注解。这里的值就是你的Mapper
接口所在的包的路径。
第四步:编写Mapper接口
通过@Select
注解和@Resuts
注解可以指定SQL语句以及返回值。当然,其他的不同的操作也有不同的注解,比如@Insert
、@Update
、@Delete
第五步:测试程序编写
访问 localhost:8081/user/findAll,我们就可以看到测试的结果:
姿势二:XML
我们用的最多的是这种方式,下面来看看怎么去实现,第一步与姿势一的重复,这里就不再多做阐述
第一步:编写配置文件
我们需要在配置文件中添加mybatis-config.xml
的路径以及用于Mapper*.xml
的文件的路径:
第二步:编写Mapper接口以及配置文件:
Mapper接口:
mybatis-config.xml:
UserMapper.xml:
这里需要注意UserMapper.xml中的namespace
需要与接口的路径一致,否则会出现错误。
测试:
测试的程序与之前的一致,我们直接访问localhost:8082/user/findAll
,可以看到成功的结果:
姿势三:SqlSession
使用SqlSession的姿势和可以与上面两种方式进行结合,emmm。。。可以这么理解,SQL就在那里,只不过分为了两个不同的方法去调用。其余的代码我们就不再多讲,直接来看是如何调用的:
可以看到,参数写的是要调用的方法的路径(这里是与namespace
相对应)。下面我们可以运行一下程序:
姿势四:基于SqlSession的升级
这里,我们基于SqlSession
进行了一次升级,首先我们写了一个BaseDao
,作为一个公用的接口。接口的实现是通过sqlSessionTemplate
。
然后我们将*Mapper.xml
的namespace
改为*Mapper
。现在,我们可以直接将所有的Mapper
接口删除,直接通过dao
进行调用~
然后我们来启动程序后去访问
关于Mybatis
的使用,我们就先讲到这里~
原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。
源码可以去github或者码云上进行下载,后续的例子都会同步更新。
云撸猫
公众号
Spring Boot 2.x(四):整合Mybatis的四种方式的更多相关文章
- SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)
前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...
- Spring Boot 定义系统启动任务,你会几种方式?
在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( ...
- [Spring] 学习Spring Boot之二:整合MyBatis并使用@Trasactional管理事务
一.配置及准备工作 1.在 Maven 的 pom 文件中新增以下依赖: <dependency> <groupId>mysql</groupId> <art ...
- Spring Boot 知识笔记(整合Mybatis)
一.pom.xml中添加相关依赖 <!-- 引入starter--> <dependency> <groupId>org.mybatis.spring.boot&l ...
- Spring Boot框架 - 数据访问 - 整合Mybatis
一.新建Spring Boot项目 注意:创建的时候勾选Mybatis依赖,pom文件如下 <dependency> <groupId>org.mybatis.spring.b ...
- spring boot(二)整合mybatis plus+ 分页插件 + 代码生成
先创建spring boot项目,不知道怎么创建项目的 可以看我上一篇文章 用到的环境 JDK8 .maven.lombok.mysql 5.7 swagger 是为了方便接口测试 一.Spring ...
- Spring Boot数据访问之整合Mybatis
在Mybatis整合Spring - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中谈到了Spring和Mybatis整合需要整合的点在哪些方面,需要将Mybatis中数据库连接池等相关对 ...
- Spring Boot学习笔记(五)整合mybatis
pom文件里添加依赖 <!-- 数据库需要的依赖 --> <dependency> <groupId>org.mybatis.spring.boot</gro ...
- springboot整合mybatis的两种方式
https://blog.csdn.net/qq_32719003/article/details/72123917 springboot通过java bean集成通用mapper的两种方式 前言:公 ...
- 记录初学Spring boot中使用GraphQL编写API的几种方式
Spring boot+graphql 一.使用graphql-java-tools方式 <dependency> <groupId>com.graphql-java-kick ...
随机推荐
- Python(Django)遇到的问题及解决方法
问题一 因为已经有程序占用了Django的默认端口了,所以只要这么启动项目,81是使用的端口,然后访问即可http://127.0.0.1:81/ 解决: 问题二 TypeError: not eno ...
- SpringMVC之拦截器的的配置和使用
拦截器与过滤器的区别:拦截器只能拦截controller的请求,过滤器可以过滤所有请求 (1)实现HandlerInterceptor接口 在执行控制器中的方法之前执行preHandle()中的方法 ...
- restful levels
1. 什么是RESTful REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的.翻译过来就是"表现层状态转化.” REST是一种软件架构风格.设计风格, ...
- 180815 Python自学成才001
1.为什么学习Python? Python:脚本语言,易入门,可移植. Python适用范围:web开发.自动化测试工具编写. 适用岗位:运维开发(运维).自动化测试(软件测试).Python开发(软 ...
- django 源码报错
启动django ,一直提示一个 AttributeError: 'str' object has no attribute 'decode' 哥,查了一下午google,就怕是自己判断错了,最后在一 ...
- Katalon Studio之接口测试中token处理
前言 最近抽时间接触了一下Katalon Studio(后面简称KS),并且利用KS做了一些接口测试的试验,感觉还不错,不过其中接口授权中缺少通过token动态验证的方案,虽然KS支持Authoriz ...
- django(models)视图与html 简单的操作
!数据提前写好 urls映射图 点击a标签之后
- HBuilder git使用-环境配置
HBuilder中使用的是Egit插件,但提供的相关资料太少,这是目前遇到的一些问题的总结 1. 安装好egit插件后,本机需要安装Git windows的安装程序,并配置好相关的环境变量(理论上是自 ...
- Android 音视频开发(六): MediaCodec API 详解
在学习了Android 音视频的基本的相关知识,并整理了相关的API之后,我们应该对基本的音视频有一定的轮廓了. 下面开始接触一个Android音视频中相当重要的一个API: MediaCodec.通 ...
- [Swift]LeetCode526. 优美的排列 | Beautiful Arrangement
Suppose you have N integers from 1 to N. We define a beautiful arrangement as an array that is const ...