SpringBoot3+Mybatis-Plus+h2数据库,入门Mybatis-Plus

SpringBoot3+Mybatis-Plus+h2数据库,入门Mybatis-Plus

  • mybatis-plus官网地址
  • maven依赖
  • 数据库脚本
  • 配置文件
  • 实体类
  • Mapper
  • 入门程序
  • 启动程序测试
  • 单元测试
    • 测试结果
  • Service层接口
  • service层接口单元测试
    • 测试结果
  • 项目结构

mybatis-plus官网地址

https://www.baomidou.com/

maven依赖

 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.0</version><relativePath/> <!-- lookup parent from repository -->
</parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- h2数据库依赖 --><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!--mybatis-plus配置--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.6</version></dependency><!--mybatis-spring的配置--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>    

数据库脚本

src/main/resources/db/schema-h2.sql

DROP TABLE IF EXISTS sys_user;CREATE TABLE sys_user
(id BIGINT NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);

src/main/resources/db/data-h2.sql

DELETE FROM sys_user;INSERT INTO sys_user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

配置文件

src/main/resources/application.yml

server:# 端口port: 9090
# 数据库配置
spring:datasource:# 驱动名称driver-class-name: org.h2.Driver# 自定义用户名username: root# 自定义密码password: test# 数据库地址:jdbc:h2:mem:数据库名称(随意填写,会自动创建url: jdbc:h2:mem:testh2:console:enabled: truepath: /h2settings:web-allow-others: truesql:init:platform: h2# 数据库初始脚本schema-locations: classpath:db/schema-h2.sql# 数据库中表的初始脚本data-locations: classpath:db/data-h2.sql
# 日志输出级别
logging:level:com.example: debug

实体类

package org.example.entity;import lombok.Data;/*** @author 16837*/
@Data
public class SysUser {private Long id;private String name;private Integer age;private String email;
}

Mapper

package org.example.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.example.entity.SysUser;/*** @author 16837*/
public interface SysUserMapper extends BaseMapper<SysUser> {
}

入门程序

package org.example;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author 16837*/
@MapperScan("org.example.mapper")
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

启动程序测试

访问路径: http://localhost:9090/h2
在这里插入图片描述
登录成功后的界面
在这里插入图片描述
在这里插入图片描述

单元测试

package org.example;import jakarta.annotation.Resource;
import org.example.entity.SysUser;
import org.example.mapper.SysUserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.List;@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ApplicationTest {@Resourceprivate SysUserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<SysUser> userList = userMapper.selectList(null);userList.forEach(System.out::println);}}

测试结果

在这里插入图片描述

Service层接口

package org.example.service;import com.baomidou.mybatisplus.extension.service.IService;
import org.example.entity.SysUser;public interface SysUserService extends IService<SysUser> {
}
package org.example.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.example.entity.SysUser;
import org.example.mapper.SysUserMapper;
import org.example.service.SysUserService;
import org.springframework.stereotype.Service;@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
}

service层接口单元测试

package org.example;import jakarta.annotation.Resource;
import org.example.entity.SysUser;
import org.example.mapper.SysUserMapper;
import org.example.service.SysUserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.util.List;@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ApplicationTest {@Resourceprivate SysUserService userService;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<SysUser> userList = userService.list();userList.forEach(System.out::println);}}

测试结果

在这里插入图片描述

项目结构

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/25983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue manually select

1 vuex 一个包含多个页面的应用程序&#xff0c;每个页面包含多个组件&#xff0c;这些组件拥有各自的表单&#xff0c;并且希望这些表单展示的数据能够在不同组件之间共享&#xff0c;那么可以使用 Vuex 来管理这些数据。在这种情况下&#xff0c;您可以将这些需要共享的数据存…

2002NOIP普及组真题 2. 选数

线上OJ&#xff1a; 【02NOIP普及组】选数 核心思想&#xff1a; 1、使用 模板函数 isPrime() 来判断一个数是否为素数。 2、定义一个函数 dfs 来进行深度优先搜索。在dfs函数中&#xff0c;通过递归的方式遍历所有可能的组合&#xff0c;并计算每个组合的和。 在 dfs 中&…

服务器升级Nacos2.2.3报错、rocksdb报错问题处理

由于系统之前使用的Nacos2.0.4有反序列化漏洞&#xff0c;故需要将Nacos升级到2.2.3版本。 该Nacos在本地运行没有问题&#xff0c;但是在Windows服务器运行就会报错&#xff1a; rocksdb java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\2\libro…

风能远程管理ARMxy嵌入式系统深度解析

智能技术正以前所未有的速度融入传统能源管理体系&#xff0c;而ARMxy工业计算机作为这一变革中的关键技术载体&#xff0c;正以其独特的性能优势&#xff0c;为能源管理的智能化升级铺设道路。本文将聚焦于智能电表、太阳能电站监控、风力发电站远程管理三大应用场景&#xff…

【2023】LitCTF

LitCTF2023&#xff08;复现&#xff09; Web&#xff1a; 1、我Flag呢&#xff1f; ​ ctrlu 读取源码&#xff0c;在最后发现了flag&#xff1a; <!--flag is here flagNSSCTF{3d5218b9-4e24-4d61-9c15-68f8789e8c48} -->2、PHP是世界上最好的语言&#xff01;&…

网站安全性评估方法

评估一个网站的安全性是一个多方面的过程&#xff0c;涉及到对网站的技术架构、代码质量、数据处理、用户交互等多个维度的考察。以下是一些常用的评估方法&#xff1a; 1.了解常见的安全风险&#xff1a;包括恶意软件、钓鱼攻击、跨站脚本攻击等&#xff0c;这些都是网站可能…

PostgreSQL的视图pg_roles

PostgreSQL的视图pg_roles pg_roles 是 PostgreSQL 中的一个系统视图&#xff0c;提供了关于数据库角色&#xff08;用户和组&#xff09;的信息。PostgreSQL 中的角色用于管理数据库的权限、登录能力以及其他安全相关的特性。通过查询 pg_roles 视图&#xff0c;数据库管理员…

oj数据库名字总结

文章目录 1. oj数据库名字解析1. compileinfo2. contest3. loginlog4. news5. online6. privilege7. problem8. runmtimeinfo9. solution10. source_code 和 source_code_user11. user 2. 删除账户1.信息删除&#xff08;不删除其做题数据&#xff09;2.彻底删除&#xff08;包…

SQL159 每个创作者每月的涨粉率及截止当前的总粉丝量

描述 用户-视频互动表tb_user_video_log iduidvideo_idstart_timeend_timeif_followif_likeif_retweetcomment_id110120012021-09-01 10:00:002021-09-01 10:00:20011NULL210520022021-09-10 11:00:002021-09-10 11:00:30101NULL310120012021-10-01 10:00:002021-10-01 10:00…

RAG检索与生成的融合

1、rag定义 检索增强生成 (RAG) 模型代表了检索系统和生成模型两大不同但互补组件完美结合的杰作。通过无缝整合相关信息检索和生成与背景相关的响应&#xff0c;RAG模型在人工智能领域达到了前所未有的复杂程度。 2、rag工作流程 2.1、rag整体框架 query通过llm处理后&…

ISO 19115-3:2023 基本概念的 XML 架构实现

前言 ISO(国际标准化组织)是由各国标准化机构(ISO 成员机构)组成的全球性联合会。制定国际标准的工作通常由 ISO 技术委员会完成。对某一技术委员会所关注的主题感兴趣的每个成员机构都有权在该委员会中派代表。与 ISO 联络的国际组织、政府和非政府组织也参与工作。ISO 与…

3.haproxy负载均衡

haproxy负载均衡 一、haproxy介绍1、负载均衡类型 二、haproxy配置文件1、backend2、frontend 三、haproxy实现MySQL负载均衡 —— 4层1、后端两台MySQL配置双主复制2、安装配置haproxy2.1 安装软件2.2 编辑配置2.3 启动haproxy2.4 测试通过haproxy正常连接MySQL 四、haproxy实…

张大哥笔记:从古至今,赚钱最快的路子就一个,从未改变

从古至今&#xff0c;赚钱最快的路子就一个&#xff0c;而且从未改变&#xff0c;那就是信息差&#xff01; 不要误解信息差为某种高端复杂的概念&#xff1b;其本质很简单——它就是"你知道而别人不知道的信息"。 曾经我也认为&#xff0c;随着互联网的发展&#x…

Ubuntu20.04配置qwen0.5B记录

环境简介 Ubuntu20.04、 NVIDIA-SMI 545.29.06、 Cuda 11.4、 python3.10、 pytorch1.11.0 开始搭建 python环境设置 创建虚拟环境 conda create --name qewn python3.10预安装modelscope和transformers pip install modelscope pip install transformers安装pytorch co…

Android.基本用法学习笔记

设置文本的内容 先在strings.xml声明变量 方法1. 方法2. 设置文本的大小 1.单位dp&#xff0c;大家可以去学一下有关的单位换算 2. 设置文本颜色 1. 2. 4.设置文本背景颜色 1. 2. 设置视图的宽高 与上级视图一致&#xff0c;也就是上一级有多宽就有多少 1. 2. 3. 4. 设置视图…

【全网最简单的解决办法】vscode中点击运行出现仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用

首先确保你是否下载好了gcc编译器&#xff01;&#xff01;&#xff01; 检测方法&#xff1a; winR 打开cmd命令窗 输入where gcc(如果出现路径则说明gcc配置好啦&#xff01;) where gcc 然后打开我们的vscode 把这个文件删除掉 再次点击运行代码&#xff0c;第一个出现…

【C语言】C语言—通讯录管理系统(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

AI日报0610 -- Prompt这样改,AI成本瞬降20%!

全球首届人工智能选美大赛 世界 AI 创作者大赛和创作者平台 FanVue 正在举办首届“Miss AI”大赛 超过 1,500 名 AI 生成的模特竞逐。这些模型不仅形象逼真 还展示了不同的个性和原因。 评委将评估技术和吸引观众的能力。 奖金池高达 20,000 美元&#xff0c;并有机会参加公关…

【python】python化妆品销售logistic逻辑回归预测分析可视化(源码+课程论文+数据集)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

已解决Error || IndexError: index 3 is out of bounds for axis 0 with size 3

已解决Error || IndexError: index 3 is out of bounds for axis 0 with size 3 原创作者&#xff1a; 猫头虎 作者微信号&#xff1a; Libin9iOak 作者公众号&#xff1a; 猫头虎技术团队 更新日期&#xff1a; 2024年6月6日 博主猫头虎的技术世界 &#x1f31f; 欢迎来…