IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!)

2024-06-16 10:52

本文主要是介绍IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 简介

2. 创建SpringBoot项目

3. Maven依赖引入

4. 创建mapper文件夹

5. 数据源和Mybatis配置

6. 工程启动类配置

7. 连接数据库和创建测试表

8. Mapper接口和XML自动生成

9. 接口测试


1. 简介

本博客将详细介绍在IDEA中,如何整合SpringBoot与Mybatis,以实现数据库的增删改查操作。我将逐步从环境搭建到实际代码实现的完整流程,帮助读者更好地理解并掌握这一技术栈。

2. 创建SpringBoot项目

首先,我们需要创建SpringBoot项目。在创建SpringBoot项目时,可以选择使用Spring Initializr来快速生成项目结构。

创建SpringBoot项目教程,本文就不过多讲解了,具体操作可参考往期博文:

IDEA创建SpringBoot项目教程,讲解超详细!!!

3. Maven依赖引入

首先,你需要在你的pom.xml文件中添加Spring Boot和MyBatis的依赖,对于Maven,添加以下依赖:

        <!-- MyBatis Spring Boot Starter  --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><!-- junit测试依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!-- lombok依赖 为了简化实体类的编写代码量 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- 数据库连接驱动,这里以MySQL为例 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

4. 创建mapper文件夹

需要在java包和resources包下各创建一个文件夹,来存放mapper接口和mapper.xml文件。

ps:这块顺带把entity文件夹建好,后续有用!!!

 

5. 数据源和Mybatis配置

在resources目录下新建application.properties文件,用于存放数据库连接需要的一些配置数据(一般在新建Springboot项目都会自动生成该文件),也可以新建application.yml文件,不过格式得转换,此处作者以properties文件进行讲解:

  • spring.datasource.url:这是Spring Boot中配置数据源URL的属性。

jdbc:mysql: 表示使用的是MySQL数据库的JDBC连接。

localhost:数据库服务器的主机名,这里表示数据库服务器运行在本机上。

3306:MySQL数据库的默认端口号。

/tic:连接的数据库名,为了演示,我本地创建了个叫tic的数据库,可自行建库进行配置。

?useSSL=false&serverTimezone=UTC:这部分是连接参数的附加设置。

  • spring.datasource.username:这是Spring Boot中配置数据库连接的用户名的属性,根据个人创建的用户设置。
  • spring.datasource.password:这是Spring Boot中配置数据库连接密码的属性,根据个人创建的用户设置。
  • spring.datasource.driver-class-name:这是Spring Boot中配置数据库驱动类名的属性。

com.mysql.cj.jdbc.Driver:是MySQL Connector/J 8.0及以上版本的JDBC驱动类名。使用这个驱动类,可以确保你的Spring Boot应用程序能够连接到MySQL数据库。

如果你选择的是 MySQL Connector/J 8.0 以下版本中(如:MySQL Connector/J 5.7),JDBC 驱动类名通常是 com.mysql.jdbc.Driver

# MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/tic?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# mapper.xml文件存放路径
mybatis.mapper-locations=classpath:mapper/*.xml

6. 工程启动类配置

启动类需要加入一个注解指定mapper接口的位置:@MapperScan("com.tic.mybatis")

7. 连接数据库和创建测试表

配置一下datasource插件,位置正常在IDEA界面的右侧栏。

依次点击 + 号,选择Data Source下的Mysql数据库。

在这个弹框中,下载MySQL驱动文件,然后再配置连接数据库信息。

Host:数据库服务器的主机名,如连接本地MySQL填locahost或者127.0.0.1,否则填远端服务器。

Port:MySQL数据库的端口号,如没自行修改MySQL配置,默认3306。

User:数据库连接的用户名,根据个人创建的用户设置。

Password:数据库连接密码,根据个人创建的用户设置。

ps:驱动文件必须下载,否则无法连接数据库!!!

ps:这块有个坑,配置连接数据库信息时URL也需要修改,否则在后面使用Mybatis自动生成插件时会有问题!!!

URL:jdbc:mysql://localhost:3306/tic?useSSL=false&serverTimezone=UTC

 驱动文件下载完成,且数据库配置信息填写完成后,点击Test Connection链接(测试数据库连接),如出现Succeeded相关信息,就代表添加的数据库配置信息正常,随后点击Apply即可。

ps:这里有个小坑,IDEA的datasource插件配置完成之后默认是不会显示你的数据库表的,需要设置一下。 在Schemas这一栏,勾选All schemas,并点击Apply即可!!! 

为了方便演示,我在本地创建一个名叫tic的数据库(数据库名自定义)。

鼠标右击刚刚连接的数据库管理系统选择New>>Schema。

在弹框下方完善建库DDL语句,然后点击OK按钮即可。

测试数据库建好后,在库中创建了一个user表,建表DDL语句如下: 

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',`nickname` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '昵称',`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

鼠标右击刚刚建好的tic库选择New>>Table。

在弹框下方将方才的user表DDL语句复制进来,然后点击OK按钮即可。

至此IDEA连接数据库和创建测试表完成。

8. Mapper接口和XML自动生成

这里给大家推荐一款非常好用的idea插件:better-mybatis-generator,在idea的插件仓库可以直接下载。

下载好之后,在user表上右键选择 mybatis-generator。

进入自动生成页面之后,需要配置的地方有3处,设置名称和选择项目的对应文件夹即可。如果你跟我的目录结构一样,可以按照下面这样配置:

完成上述配置后,点击OK按钮后,因第一次使用该插件,需输入数据库用户和密码。

点击OK之后,Mapper接口、User实体类和Mapper.xml文件就都生成好了,生成的结果如下:

9. 接口测试

完成上述步骤后,您的项目已经顺利集成了Mybatis,那么我们现在可以对集成的结果进行一个测试,看看还有没有问题,是不是可以投入使用。

我写了一个TestController接口用来插入一条user数据:

package com.tic.mybatis.controller;import com.tic.mybatis.entity.User;
import com.tic.mybatis.mapper.UserDao;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** @Author: Michael Lee* @CreateTime: 2024-06-16* @Description: 测试接口*/
@RestController
@RequestMapping("/test")
public class TestController {@Resourceprivate UserDao userDao;@GetMappingpublic String findAll() {User user = new User();user.setId(1);user.setNickname("Michael Lee");user.setUsername("admin");user.setPassword("123456");userDao.insert(user);return "接口调用成功!";}
}

写完之后,鼠标右击程序入口,启动一下工程:

然后直接访问localhost:8080/test接口,此处作者接口出现异常,控制台出现Public Key Retrieval is not allowed报错。

"Public Key Retrieval is not allowed" 是一个错误消息,通常出现在尝试连接MySQL数据库时,尤其是在使用较新版本的MySQL(如MySQL 8.0及以上)时。这个错误表明客户端不允许从服务器检索公钥。

此处需要打开application.properties配置文件,修改数据库连接URL配置,新增allowPublicKeyRetrieval=true配置

spring.datasource.url=jdbc:mysql://localhost:3306/tic?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true

修改上述配置后,重新启动工程,再次调用接口,返回下列信息则是成功!

然后我们打开数据库,即可看到数据已成功录入表中。

至此,我们的SpringBoot集成M'y'batis项目完美竣工!!!

ps:后续作者会持续更新Springboot集成各类技术框架,如感兴趣关注点一下!!!

有什么问题都可以评论区留言,看见都会回复的!!!

如果你觉得本篇文章对你有所帮助的,多多支持!!!

点赞收藏评论,抱拳了!!!

这篇关于IDEA SpringBoot整合Mybatis(保姆级教程,超详细!!!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066267

相关文章

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代,构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案,帮助开发者快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器等)。本文将探讨 Spring Cloud 的定义、核心组件、应用场景以及未来的发展趋势。 什么是 Spring Cloud Spring Cloud 是一个基于 Spring

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

java8的新特性之一(Java Lambda表达式)

1:Java8的新特性 Lambda 表达式: 允许以更简洁的方式表示匿名函数(或称为闭包)。可以将Lambda表达式作为参数传递给方法或赋值给函数式接口类型的变量。 Stream API: 提供了一种处理集合数据的流式处理方式,支持函数式编程风格。 允许以声明性方式处理数据集合(如List、Set等)。提供了一系列操作,如map、filter、reduce等,以支持复杂的查询和转

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单处理:通过 @ModelAttribute 将表单数据绑定到模型对象上预处理逻辑:在请求处理之前

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

idea lanyu方式激活

访问http://idea.lanyus.com/这个地址。根据提示将0.0.0.0 account.jetbrains.com添加到hosts文件中,hosts文件在C:\Windows\System32\drivers\etc目录下。点击获得注册码即可。

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001