SpringBoot学习笔记(7)-整合Mybatis

SpringBoot整合Mybatis详解 SpringBoot整合Mybatis非常简单,下面开始操作! 阅读详情


整合环境:idea+gradle4.8(maven)+springboot2.0+mysql5

更多关于SpringBoot的总结请点击:SpringBoot使用总结


一、配置mybatis依赖

如果使用gradle作为管理工具,则在build.gradle中配置以下代码,引入mybatis的依赖:

  • build.gradle
//Mybatis依赖
compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
//jdbc依赖
runtime('mysql:mysql-connector-java')

如果使用maven作为管理工具,则在pom.xml中配置以下代码,引入mybatis的依赖:

  • pom.xml
	 <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>

二、配置application.properties

在导入完mybatis的依赖后,我们需要在主配置文件中添加关于mybatis和数据库的相关配置:

注意,jdbc版本在8.0及其之上时,如果不配置时间区间serverTimezone=GMT%2B8的话,在使用mybatis时将会报一下错误:

Exception in thread "main" java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
  • application.properties
# mapper.xml文件完整路径扫描
mybatis.mapper-locations=classpath:com/shanyutech/bucaogui/mapper/*.xml
# 数据库连接名
spring.datasource.username=root
# 数据库连接密码
spring.datasource.password=123
# 数据库连接驱动
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库名称以及编码表和时间区间
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8



三、在启动类上加@MapperScan注解

我建立的包结构如图:
在这里插入图片描述
当配置依赖完毕后,需要在运行主类上加@MapperScan注解去告诉配置Mapper包的位置,以便于找到接口和xml配置文件:

@SpringBootApplication
@MapperScan("com.example.springboot_mybatis_test.mapper")
public class SpringbootMybatisTestApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootMybatisTestApplication.class, args);
	}

}

四、配置资源文件读取

这一步十分地关键,如果不进行资源文件的配置,会造成mapper.xml文件没有被加载到classes中。
如果是使用gradle进行项目管理,可以在build.gradle中添加以下代码将xml文件读取

  • build.gradle
//xml资源文件读取
sourceSets {
	main {
		resources {
			//可以将java目录下的所有非.java资源打包到classes下
			srcDirs = ['src/main/java', 'src/main/resources']
		}
	}
}

如果是使用maven作为项目管理工具,则在pom.xml中添加以下代码:

  • pom.xml
<build>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>

			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>


		</resources>
</build>

五、结合SpringMVC完成测试

现在所有的配置均已完毕,我们使用熟悉的SpringMVC以及三层架构完成一次对数据库的请求,测试其中是否有问题出现:
以下为项目结构:

  • UserController
/**
 * @Auther: ARong
 * @Date: 2018/12/20 17:49
 * @Description: 查询用户
 */
@RestController
public class userController {
    //注入UserService
    @Autowired
    private UserService userService;

    /**
     * @auther: Arong
     * @description: 请求service层获取UserListVTO,以json格式返回给前台
     * @param
     * @return: com.example.springboot_mybatis_test.vto.UserListVTO
     * @date: 2018/12/20 21:08
     */
    @GetMapping(value="/getUserList")
    public UserListVTO getUserList(){
        UserListVTO userListVTO = userService.getUserList();
        return userListVTO;
    }
}
  • UserService
/**
 * @Auther: ARong
 * @Date: 2018/12/20 17:52
 * @Description: 获取UserListVTO的service接口
 */
public interface UserService {
    UserListVTO getUserList();
}
  • UserServiceImpl
/**
 * @Auther: ARong
 * @Date: 2018/12/20 17:54
 * @Description: UserService的实现类,完成业务逻辑
 */
@Service
public class UserServiceImpl implements UserService {
    //注入UserMapper
    @Autowired
    private UserMapper userMapper;

    /**
     * @auther: Arong
     * @description:请求UserMapper,获得User集合并封装成UserListVTO对象返回给Controller
     * @param
     * @return: com.example.springboot_mybatis_test.vto.UserListVTO
     * @date: 2018/12/20 21:10
     */
    @Override
    public UserListVTO getUserList(){
        List<User> userList =  userMapper.getUserList();
        UserListVTO userListVTO = new UserListVTO(userList);
        return userListVTO;
    }
}
  • UserMapper
/**
 * @Auther: ARong
 * @Date: 2018/12/20 17:56
 * @Description: User的代理接口
 */
@Repository
@Mapper
public interface UserMapper {
    List<User> getUserList();
}
  • 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.example.springboot_mybatis_test.mapper.UserMapper">
    <select id="getUserList" resultType="com.example.springboot_mybatis_test.entity.User">
      select * from user;
    </select>
</mapper>
  • User
/**
 * @Auther: ARong
 * @Date: 2018/12/20 17:44
 * @Description: User实体类
 */
public class User implements Serializable{

    //id
    private int id;
    //name
    private String name;
    //school
    private String school;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
}
  • UserListVTO
/**
 * @Auther: ARong
 * @Date: 2018/12/20 21:02
 * @Description: 包装UserList,返回给前台
 */
public class UserListVTO {
    //真实的UserList对象
    private List<User> userList;
    //在创建时确定userList的实例
    public UserListVTO(List<User> userList){
        this.userList = userList;
    }
    //getter & setter
    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
}
  • 数据库表
    在这里插入图片描述

运行启动类,访问http://localhost:8080/getUserList,出现以下Json数据,mybatis整合成功:
在这里插入图片描述

SpringBoot整合MyBatis 一、创建SpringBoot项目 使用IDEA创建项目,创建类型选择Spring Initializer(快速创建springboot项目)。选择jar包和maven的配置,勾选Web包创建基本的项目。创建的项目默认有两个依赖: spring-boot-starter-web spring-boot-starter-test 这两个依赖包含了多个Spring和SpringMVC的依赖,... 阅读详情

相关推荐

SpringBoot 整合mybatis,mybatis-plus

SpringBoot 整合mybatis,mybatis-plus

congge_study的博客 2万+

Mybatis和SpringBoot的整合

简介 Mybatis和SpringBoot整合整合需要依赖MyBatis-Spring-Boot-Starter MyBatis-Spring-Boot-Starter 帮助您在Spring Boot之上快速构建 MyBatis 应用程序,通过使用此模块,您将实现:构建独立的应用程序,将样板文件减少到几乎为零,更少的 XML 配置 MyBatis-Spring-Boot-Starter 需要以下版本: 一、Mybatis和SpringBoot整合应用 1.1 项目依赖 在原项目依赖上,加上下面依赖 &

clyu的博客 4094

基于SpringBoot 2.0.3.RELEASE+Mybatis+Redis的SSO单点登录系统

基于SpringBoot 2.0.3 RELEASE+Mybatis+Redis的SSO单点登录系统

SpringBoot整合Mybatis

SpringBoot整合Mybatis

junR_980218的博客 5万+

RJ45以太网接口EMC设计方案

RJ45以太网接口EMC设计方案 一、 接口概述 RJ45以太网接口是目前应用最广泛的通讯设备接口,以太网口的电磁兼容性能关系到通讯设备的稳定运行。赛盛技术应用电磁兼容设计平台(EDP)软件从接口原理图、结构设计,线缆设计三个方面来设计以太网口的EMC设计方案。 二、 接口电路 原理图的EMC设计 百兆以太网接口2KV防雷滤波设计 图1 百兆以太网接口2KV防雷滤波设计 接口电路设计概述: 本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计;从设计层次解决EMC问题;同时此电路兼容了百兆以太网接

兰陵笑笑生SD的博客 1万+

Claude Code+Cursor+Claude 4三剑合璧!5步搞定Magentic-UI的OAuth2.0集成,开发效率飙升500%,新手秒变全栈工程师

本文详细介绍了如何利用Claude Code、Cursor和Claude 4三款AI工具高效集成Magentic-UI的OAuth2.0认证系统。通过5个步骤的实战演练,开发者可快速完成从环境搭建、项目分析、代码生成到前端集成的全过程,显著提升开发效率。文章还提供了JWT令牌管理、安全配置及常见问题解决方案。

weixin_29234509的博客 458

SpringBoot结合MyBatis 【超详细】

Spring Boot与MyBatis框架集合实践。内置MyBatis大部分使用技巧,而Spring Boot起到个快速入门的效果。其中MyBatis内容涉及到业务层与数据访问层的传参知识、企业常用的动态SQL拼接、高级映射及延迟加载、以及缓存机制、最后包括PageHelper分页插件

m0_65563175的博客 12万+

不只是CPU主频:深入解析英飞凌Aurix TC3xx各外设时钟树(CAN、以太网、Flash时序如何配置)

本文深入解析英飞凌Aurix TC3xx系列微控制器的外设时钟树配置,涵盖CAN、以太网和Flash时序的优化方法。通过详细分析时钟系统架构、关键外设配置及多外设协同设计策略,帮助工程师实现高性能汽车电子控制单元(ECU)开发。特别关注系统时钟的灵活配置与EMC优化技巧,提升系统实时性和可靠性。

weixin_29189373的博客 401

Spring Boot 整合MyBatis

整合MyBatis

探索er的博客 8221

紫光同创PGL50H开发板实战:盘古50KN网口板的高速通信与数据处理

本文详细介绍了紫光同创PGL50H开发板(盘古50KN网口板)在高速通信与数据处理领域的实战应用。文章从开箱、核心芯片解析、开发环境搭建入手,重点讲解了如何配置与测试其8路千兆以太网接口和SFP光纤接口,并深入探讨了FPGA与DDR3协同进行多路数据汇聚处理的系统架构与调试方法,为网络通信与高速数据处理系统开发提供了宝贵的实践经验。

weixin_28256233的博客 455

REALTEK PKE8710ECF开发板入手试玩(一)

REALTEK PKE8710ECF开发板入手试玩

lbqhope的专栏 694

MyBatis整合到SpringBoot的两种方式

用xml配置的方式和用Mapper注解的方式配置

s2323748558的博客 2448

【零基础教程】HEC-RAS 1D/2D全流程模拟指南|从水动力到水质建模一次搞定!

HEC-RAS由美国陆军工程兵团水文研究中心研制,具有完整的一二维耦合的水动力及水环境模拟功能,也具有闸、涵洞、桥梁以及泵站等水利构筑物的模拟能力;同时也可以与HEC研制的水文模型(HMS)、洪水淹没风险和损失分析软件(FDA)等耦合,是免费软件中使用最方便、应用最广泛的软件之一。2.HEC-RAS与HEC-HMS的耦合(不详细讲HEC-HMS)3.淹没风险分析软件HEC-FDA与HEC-RAS耦合。案例十八:HEC-RAS与HEC-HMS的耦合。案例十九:HEC-RAS与HEC-FDA的耦合。

weixin_48230888的博客 873

Springboot学习笔记7:整合Mybatis

一、什么是Mybatis? MyBatis是一款优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 二、配置Mybatis 1.导入依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-star

Vincent9847的博客 271

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2950

GEE初学:谷歌地球引擎GEE入门指南(最新注册全流程)

本教程详细介绍了谷歌地球引擎(GEE)的注册与基础操作流程。主要内容包括:1)非商业账号注册步骤,需提供学术机构凭证和研究目的;2)Google Cloud项目创建与API激活;3)Shapefile文件上传方法及资源ID获取;4)JavaScript脚本编写与地图可视化实现。教程通过代码示例展示了两种多边形显示方式(填充和轮廓模式),并强调了GEE的云端处理优势,包括免费访问40多年卫星数据、无需本地高性能硬件等特点。整个流程从账号注册到首个地图可视化完成约需10-15分钟,适合遥感分析初学者快速入门。

此星光明博客 2149

【SpringBoot】SpringBoot整合Mybatis、druid

SpringBoot是一项十分重要的技术,希望我们大家可以把它学好,这一章讲解的是SpringBoot如何整合Mybatis、druid。由于Mybatis-plus也是一项重要的技术,下一次会讲Mybatis及与SpringBoot的整合,喜欢的小伙伴可以订阅专栏。

未来可以改变 1982

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

详解SpringBoot整合Mybatis框架

文章目录前言一、创建SpringBoot项目二、配置Mybatis1. 在pom.xml文件中添加jar包依赖2. SpringBoot整合Mybatis配置文件三、创建Mapper接口四、创建XML映射文件五、测试是否整合成功总结 前言 人生是一段旅程,走过的路,就是你编织的生活,我们无法预知以后的路途,但是,我们能把握现在的自己,珍惜身边的一切,脚踏实地的走,走好自己的路,不在生命里给自己留下遗憾的风景! 对于企业开发来说,稳定性和便捷性是最重要的两个特性,SpringBoot更像是一个框架的框架

世纪末的架构师的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SpringBoot整合MyBatis原理

SpringBoot整合MyBatis原理 一. 自动配置 SpringBoot提供了MyBatis的自动配置类MybatisAutoConfiguration,可以自动注册SqlSessionFactory、SqlSessionTemplate等组件,开发人员只需在配置文件中指定相关属性即可。 @Configuration @ConditionalOnClass({ SqlSessionFact...

weixin_34452850的博客 5029

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringBoot 整合 Mybatis

SpringBoot Mybatis 整合 SpringBoot Mybatis这么有名的框架废话不多说了,直接开始 环境/版本一览: 开发工具:Intellij IDEA 2020.2.3 springboot:2.3.7.RELEASE jdk:1.8.0_211 maven:3.6.3 工程结构: 开始搭建: 创建数据库 t_user_db SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -----------------.

王德昌的博客 2万+

SpringBoot2.7整合MyBatis

首先,创建一个新的Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)进行项目初始化,选择适当的项目元数据(如项目名称、组织、依赖等)。

Tzeao 3503

SpringBoot 整合Mybatis

一、SpringBoot 整合Mybatis 1、在创建SpringBoot 的项目时,选择JDBC、mysql,Mybatis,web的组件,或者自己手动在maven中添加库依赖: <dependency> <groupId>org.springframework.boot</groupId> ...

Charge8的博客 1760

springboot整合mysql5.7_SpringBoot整合MyBatis

一、准备工作1、建表语句,使用MySQL5.7.28SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructurefort_user------------------------------DROPTABLEIFEXISTS`t_user`;CREATETABLE`t_user`(`ID`...

weixin_39602560的博客 1711

SpringBoot——整合mybatis

引入mybatis启动器:mybatis-spring-boot-starter,这个启动器时mybatis自己实现 springboot提供的starter都是spring-boot-starter-xxx格式 使用了mybatis启动器之后只需要定义一个DataSource即可,它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。并且会自动扫描Mappers,并关联到SqlSessionTemplate,然后之策到Spring.

qq_43524048的博客 1690

springboot整合mybatis(一)入门

mybatis

xiatianit的博客 3028
上一篇: Thymeleaf-内置对象和在SpringBoot中的配置
下一篇: SpringBoot学习笔记(8)-整合Redis
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值