springboot整合mybatis框架,超详细
第一种: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框架,超详细相关推荐
- Spring Boot整合Mybatis【超详细】
pring Boot整合Mybatis 配置文件形式 pom.xml 配置数据源 UserMapper.xml UserMapper 配置springboot整合mybatis 在运行类上添加@Map ...
- 【七】springboot整合redis(超详细)
springboot篇章整体栏目: [一]springboot整合swagger(超详细 [二]springboot整合swagger(自定义)(超详细) [三]springboot整合token(超 ...
- 详解SpringBoot整合Mybatis框架
文章目录 前言 一.创建SpringBoot项目 二.配置Mybatis 1. 在pom.xml文件中添加jar包依赖 2. SpringBoot整合Mybatis配置文件 三.创建Mapper接口 ...
- SpringBoot结合MyBatis 【超详细】
1.SpringBoot+老杜MyBatis 一.简单回顾一下MyBatis 二.快速入门 三.简易插入删除更改 四.查询 ①.按其中一个字段查询 ②.按所有字段进行查询 五.详解MyBatis核 ...
- springboot整合shiro(超详细,你想要的都在这了)
Springboot整合Shiro 文章目录 pom依赖 前端页面(thymeleaf整合shiro) thymeleaf中shiro标签解释 数据库(整合mybatis) 理解shiro的几个组成部 ...
- Springboot整合mybatis框架(含实例Demo)
最近要交一份project项目作业,前后端分离,我负责后端,选用了Springboot+mybatis进行整合操作. 一.前期准备: 开发使用的IDE为IntelliJ IDEA:https://ww ...
- Springboot整合Mybatis框架
Springboot学习有段时间,由于最近忙着找实习,学习网之后很久么有实操过,有点忘了今天复盘一下,记录此笔记. 1.新建springboot项目,这里使用阿里云镜像,官方的网络太卡了 2.选择好版 ...
- Springboot整合MyBatis框架(内含两种方式)
新建一个模块,命名为springboot-mybatis 创建完成. 在navicat软件里新建数据库springboot,运行下面这段sql代码, /*!40101 SET NAMES utf8 * ...
- SpringBoot整合Mybatis超详细流程
SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...
最新文章
- 在巨头壁垒下,人工智能细分领域涌现领跑者,这是AI真正的新机遇
- spring-boot的access日志格式修改
- 7、ShardingSphere 之 Sharding-Proxy
- Linux上传与下载工具介绍
- iOS Hacker 越狱后开发和逆向工具准备
- Asp.Net Core 单元测试正确姿势
- VC6.0 中的__asm语句
- datax 不识别字段过滤_静电式空气过滤器有什么特点 静电式空气过滤器特点介绍【详解】...
- 创建钩子(Hook)
- JS正则表达式(RegExp)
- java httpclient 进度条_java – 如何使用Apache HttpClient 4获取文件上传的进度条?
- 《Java语言程序设计》✍基础知识整理
- 奥城大学计算机专业,美国研究生双录取的大学及可提供学位详情
- 【云原生之kubernetes实战】在k8s环境下部署Snipe-IT固定资产管理平台
- 古诗三百首(html)
- CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法...
- zabbix模板关联群组
- 八、DOM(一) -- DOM对象
- WinDbg调试的前因后果
- matlab形变监测,徕卡隧道形变监测程序
热门文章
- Zeppelin设置返回的最大结果行数zeppelin.spark.maxResult
- win7未授予用户在此计算机上的请求登陆类型,教你win7出现未授予用户在此计算机上的请求登陆类型提示怎么办...
- ML模型部署-工具箱
- 【认证】【澳大利亚】澳大利亚认证相关,Freeview EPG
- 会议预约系统 java_java会议室管理系统
- Entity Framework 学习
- 下秒数据李元佳:湖仓一体带来现代数据栈变革
- easyui—DataGrid(数据表格)
- 2023腾讯云服务器价格表(轻量/CVM/免费/GPU)
- 苹果新专利:扩大电池容量,有望提高 iPhone续航