第一种:mapper接口纯注解

(mapper层即为dao层)

第一步:application.yml文件配置DataSource,注解开发可以不用配置mybatis。(以User.java为例)

​
#application.yml文件内容如下
# datasource
spring:datasource:url: jdbc:mysql:///springboot?serverTimezone=UTC  #注意添加时区,标准时区为“UTC”username: rootpassword: 20011205driver-class-name: com.mysql.cj.jdbc.Driver​

下面是url和driverclassname注解形式:

driverClassName: com.mysql.jdbc.Driver    # mysql-connector-java 5.x及之前版本中的
driverClassName: com.mysql.cj.jdbc.Driver # mysql-connector-java 6.x及后续版本中的
参数名称                 参数说明
user                    数据库用户名(用于连接数据库)
password                用户密码(用于连接数据库)
useUnicode              是否使用Unicode字符集
characterEncoding       指定字符编码
autoReconnect           当数据库连接异常中断时,是否自动重新连接
autoReconnectForPools   是否使用针对数据库连接池的重连策略
failOverReadOnly        自动重连成功后,连接是否设置为只读
maxReconnects           autoReconnect设置为true时,重试连接的次数
initialTimeout          autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒
connectTimeout          和数据库服务器建立socket连接时的超时时间,单位:毫秒。 0表示永不超时,适用于JDK
socketTimeout           socket操作(读写)超时时间,单位:毫秒。 0表示永不超时
useSSL                  是否进行SSL连接
serverTimezone          数据库时区设置,mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。
​
# Kaven是你需要连接的具体数据库名
url:jdbc:mysql://localhost:3306/Kaven
# 使用Unicode字符集,并且指定UTF-8字符编码
url:jdbc:mysql://localhost:3306/Kaven?useUnicode=true&characterEncoding=UTF-8
# 当数据库连接异常中断时,自动重新连接
url:jdbc:mysql://localhost:3306/Kaven?autoReconnect=true
# 不进行SSL连接
url:jdbc:mysql://localhost:3306/Kaven?useSSL=false
# 不进行SSL连接,并且设置数据库时区为亚洲上海
url:jdbc:mysql://localhost:3306/Kaven?useSSL=false&serverTimezone=Asia/Shanghai​

第二步:创建UserMapper接口。mapper.UserMapper(mapper包下)

#mapper包下的UserMapper.java接口
package com.ithc.springbootmybatis.mapper;import com.ithc.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Select("select * from t_user")public List<User> findAll();
}

第三步:在测试类中注入对应的mapper

注意一下注解:@RunWith 是类级别的注解, 它提供了一种更改测试运行程序的默认行为的机制。简单理解,@RunWith注解就是一个运行器,其接受一个类的签名来指定是使用什么类、在什么环境下运行。需要注意的是,该注解的参数必须是Runner类的子类。

@SpringBootTest注解是一个Spring Boot提供的注解,通过这个注解可以使JUnit单元测试跑在Spring Boot的运行环境中。我们可以通过classes参数来指定Spring Boot的启动类。

​
import...
@SpringBootTest
class SpringbootMybatisApplicationTests {@Autowiredprivate UserMapper userMapper;  #注入mapper@Testpublic void testFindAll() {List<User> list = userMapper.findAll();  #测试类操作,查找所有用户,存到list集合中System.out.println(list);   #打印list}
}​

第四步:测试,控制台成功打印所需信息。

第二种:Xml配置

第一步:创建UserXmlMapper接口

#UserXmlMapper接口文件内容
package com.ithc.springbootmybatis.mapper;import com.ithc.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface UserXmlMapper {public List<User> findAll();
}

(没有添加注解,所以需要配置文件和findAll方法进行映射)

第二步:配置文件,写在resources目录下,创建directory类型文件mapper,mapper下UserMapper.xml文件进行配置,内容是对mapper的约束头。

#xml文件原始内容,不完整,对mapper作约束
<?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> 内容 </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.ithc.springbootmybatis.mapper.UserXmlMapper">  #指定namespace让其和UserXmlMapper有映射关系,值为其全路径名。copy reference复制路径名<select id="findAll" resultType="user">  #id和接口中方法名相同,finaAll;resultType和domain中类名相同,User,也可以用别名select * from t_user  #SQL语句</select>
</mapper>​​

第三步:写好了UserMapper.xml配置文件后,需要在application.yml文件中配置mybatis

​
# mybatis
mybatis:mapper-locations: classpath:mapper/*Mapper.xml  #mapper映射文件路径type-aliases-package: com.ithc.springbootmybatis.domain #包扫描,因为前面的配置文件中使用了别名,所以需要把别名配置进去,值为User.java所在包的包名
#config-location: 指定mybatis的核心配置文件​

第四步:配置完毕,在测试类中注入。注入完毕测试得到同样结果。

​
#在测试类中注入,内容格式与纯注解方法相同
@SpringBootTest
class SpringbootMybatisApplicationTests {@Autowiredprivate UserXmlMapper userXmlMapper;@Testpublic void testFindAll2() {List<User> list = userXmlMapper.findAll();System.out.println(list);}
}​

springboot整合mybatis框架,超详细相关推荐

  1. Spring Boot整合Mybatis【超详细】

    pring Boot整合Mybatis 配置文件形式 pom.xml 配置数据源 UserMapper.xml UserMapper 配置springboot整合mybatis 在运行类上添加@Map ...

  2. 【七】springboot整合redis(超详细)

    springboot篇章整体栏目: [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合token(超 ...

  3. 详解SpringBoot整合Mybatis框架

    文章目录 前言 一.创建SpringBoot项目 二.配置Mybatis 1. 在pom.xml文件中添加jar包依赖 2. SpringBoot整合Mybatis配置文件 三.创建Mapper接口 ...

  4. SpringBoot结合MyBatis 【超详细】

    1.SpringBoot+老杜MyBatis 一.简单回顾一下MyBatis 二.快速入门 ​三.简易插入删除更改 四.查询 ①.按其中一个字段查询 ②.按所有字段进行查询 ​五.详解MyBatis核 ...

  5. springboot整合shiro(超详细,你想要的都在这了)

    Springboot整合Shiro 文章目录 pom依赖 前端页面(thymeleaf整合shiro) thymeleaf中shiro标签解释 数据库(整合mybatis) 理解shiro的几个组成部 ...

  6. Springboot整合mybatis框架(含实例Demo)

    最近要交一份project项目作业,前后端分离,我负责后端,选用了Springboot+mybatis进行整合操作. 一.前期准备: 开发使用的IDE为IntelliJ IDEA:https://ww ...

  7. Springboot整合Mybatis框架

    Springboot学习有段时间,由于最近忙着找实习,学习网之后很久么有实操过,有点忘了今天复盘一下,记录此笔记. 1.新建springboot项目,这里使用阿里云镜像,官方的网络太卡了 2.选择好版 ...

  8. Springboot整合MyBatis框架(内含两种方式)

    新建一个模块,命名为springboot-mybatis 创建完成. 在navicat软件里新建数据库springboot,运行下面这段sql代码, /*!40101 SET NAMES utf8 * ...

  9. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

最新文章

  1. 在巨头壁垒下,人工智能细分领域涌现领跑者,这是AI真正的新机遇
  2. spring-boot的access日志格式修改
  3. 7、ShardingSphere 之 Sharding-Proxy
  4. Linux上传与下载工具介绍
  5. iOS Hacker 越狱后开发和逆向工具准备
  6. Asp.Net Core 单元测试正确姿势
  7. VC6.0 中的__asm语句
  8. datax 不识别字段过滤_静电式空气过滤器有什么特点 静电式空气过滤器特点介绍【详解】...
  9. 创建钩子(Hook)
  10. JS正则表达式(RegExp)
  11. java httpclient 进度条_java – 如何使用Apache HttpClient 4获取文件上传的进度条?
  12. 《Java语言程序设计》✍基础知识整理
  13. 奥城大学计算机专业,美国研究生双录取的大学及可提供学位详情
  14. 【云原生之kubernetes实战】在k8s环境下部署Snipe-IT固定资产管理平台
  15. 古诗三百首(html)
  16. CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法...
  17. zabbix模板关联群组
  18. 八、DOM(一) -- DOM对象
  19. WinDbg调试的前因后果
  20. matlab形变监测,徕卡隧道形变监测程序

热门文章

  1. Zeppelin设置返回的最大结果行数zeppelin.spark.maxResult
  2. win7未授予用户在此计算机上的请求登陆类型,教你win7出现未授予用户在此计算机上的请求登陆类型提示怎么办...
  3. ML模型部署-工具箱
  4. 【认证】【澳大利亚】澳大利亚认证相关,Freeview EPG
  5. 会议预约系统 java_java会议室管理系统
  6. Entity Framework 学习
  7. 下秒数据李元佳:湖仓一体带来现代数据栈变革
  8. easyui—DataGrid(数据表格)
  9. 2023腾讯云服务器价格表(轻量/CVM/免费/GPU)
  10. 苹果新专利:扩大电池容量,有望提高 iPhone续航