SpringBoot整合Mybatis

devtools/2024/9/24 6:23:00/

目录

一、引入依赖

二、创建实体类

三、编写mapper接口以及映射文件

Mapper接口

映射文件

四、编写application.yml配置文件

五、进行测试 


之前搭建项目的时候,没有什么问题包括引入依赖,结果在测试的时候一直报错,后面原因竟然是引入的依赖各个版本不兼容,哎!栓Q!

一、引入依赖

  <dependencies><!--lombok注解依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mybatis起步依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.1</version></dependency><!--  mysql驱动包  --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>3.0.3</version></dependency></dependencies>

二、创建实体类

java">@Data
@NoArgsConstructor
@AllArgsConstructor
public class user {private Integer id;private String name;private Integer age;
}

三、编写mapper接口以及映射文件

Mapper接口

java">@Mapper
public interface UserMapper {List<user> findAll();
}

映射文件

(注意映射文件一定要和mapper属于同一目录文件)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.gq.springboot_mybatis_demo1.mapper.UserMapper"><select id="findAll" resultType="com.gq.springboot_mybatis_demo1.pojo.user">select * from user</select>
</mapper>

四、编写application.yml配置文件

这里主要在配置文件中编写什么呢?

(1)编写数据池,连接数据库不肯定要用户名,密码,地址等等

(2)mybatis的配置,告诉spring你的映射文件的路径在哪里,以及编写的实体类的位置在哪里(也叫起别名)

(3)log打印,这个我们可以根据日志方便找出bug

# 配置数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///sql_test?serverTimezone=UTCusername: rootpassword: root
#mybatis配置
mybatis:# 映射文件位置mapper-locations: com/gq/springboot_mybatis_demo1/mapper/*Mapper.xml# 别名type-aliases-package: com.gq.springboot_mybatis_demo1.pojologging:pattern:console: '%d{HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n'

五、进行测试 

如果使用idea作为编辑器的话,在测试的时候我们可以使用ctrl+shift+t快捷键帮助我们快速创建测试类

java">//测试的时候一定不要忘了加SpringBoot注解
@SpringBootTest
class UserMapperTest {@Autowiredprivate UserMapper userMapper;@Testvoid findAll() {List<user> list=userMapper.findAll();list.forEach(System.out::println);}
}

 


http://www.ppmy.cn/devtools/9603.html

相关文章

设计模式:生活中的状态模式

让我们通过一个生活中的例子来深入理解状态模式&#xff1a;咖啡机的工作流程。想象一下&#xff0c;一个咖啡机有几种状态&#xff1a;无币状态、有币状态、制作咖啡状态和咖啡制作完成状态。用户在每个状态下与咖啡机的互动都是不同的。 状态模式在咖啡机中的应用 无币状态…

ElasticSearch:查询操作合集

先看下我的数据&#xff1a; 1、查询所有文档&#xff1a; GET /cartest/_search或者 GET /cartest/_search {"query": {"match_all": {}} }2、匹配查询&#xff1a; match匹配类型查询&#xff0c;会把查询条件进行分词&#xff0c;然后进行查询&…

Web3钱包开发获取测试币-Base Sepolia(二)

Web3钱包开发获取测试币-Base Sepolia(二) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b0c0ac86b04a496087471388532bc54a.png) 基于上篇 Web3钱包开发获取测试币-Polygon Mumbai(一) &#xff1a;https://suwu150.blog.csdn.net/article/details/137949473 我…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用CFMIME Encoder方法进行图像压缩保存(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用CFMIME Encoder方法进行图像压缩保存&#xff08;C&#xff09; Baumer工业相机Baumer工业相机通过NEOSDK进行图像压缩的技术背景代码分析第一步&#xff1a;先引用对应的NET框架的DLL文件第二步&#xff1a;在回调函数里进行…

spi 收发流程

patch日期 收发流程的重大修改&#xff0c;来源于2012年的如下补丁 内核提交收发流程的patch spi: create a message queueing infrastructure - kernel/git/stable/linux.git - Linux kernel stable tree 源代码路径及功能 源码作用\drivers\spi\spi.cspi 通用接口&#x…

YOLOv8 测试 5-2:Linux 中 Dockerfile 部署 YOLOv8 项目一键运行,Python 封装 API 接口测试

一、前言 记录时间 [2024-4-15] 系列文章简摘&#xff1a; Docker 学习笔记&#xff08;二&#xff09;&#xff1a;在 Linux 中部署 Docker&#xff08;Centos7 下安装 docker、环境配置&#xff0c;以及镜像简单使用&#xff09; API 接口简单使用&#xff08;二&#xff09;…

前端js控制元素移动

背景 页面中有多个表格&#xff0c;每个表格中均有一从右到左匀速移动的元素&#xff0c;随着元素移动需要在表格中增减数据&#xff0c;由于使用css3动画无法捕捉元素移动位置&#xff0c;所以这里采用js控制dom的写法 解决办法 最终代码放在文章的最后&#xff0c;各位看官…

后端获取请求体Body,将请求体进行解密放回Request请求,并能通过@RequestBody获取

目前系统发送的post和put请求都是没有加密数据。客户需要将请求体加密。而系统已经基本开发完成&#xff0c;不可能一个一个去修改发送的请求。就需要在发送请求时候在拦截器中将body进行加密。并且在后端进行请求过滤解密&#xff0c;并且能通过RequestBody继续获取对象。 1.…