《Techporters架构搭建》-Day02 集成Mybatis-plus

集成Mybatis-plus

  • Mybatis-plus
  • 集成Mybatis-plus步骤
  • 小结

Mybatis-plus

Mybatis-plus官网
MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它引入了一些新的特性,如自动填充、乐观锁插件、逻辑删除等,同时还内置了一些常用的CRUD操作,极大地减少了开发人员的工作量。

集成Mybatis-plus步骤

①在tps-system-biz模块下build.gradle添加Mybatis-plus依赖;数据库我用的是Mysql8,所以还得添加Mysql驱动

dependencies {implementation 'org.springframework.boot:spring-boot-starter'implementation 'org.springframework.boot:spring-boot-starter-web'//Mybatis-plus依赖implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.7'//mysql驱动implementation 'mysql:mysql-connector-java:8.0.23'testImplementation 'org.springframework.boot:spring-boot-starter-test'testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

② Springboot创建默认配置文件为application.properties,在配置文件里面添加mysql配置(默认本地已经安装mysql数据库)

# 数据库驱动类
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/tps?useSSL=false&serverTimezone=UTC
# 数据库用户名
spring.datasource.username=root
# 数据库密码
spring.datasource.password=root

③在数据库创建一张表system_user,同时随便加入一条或者多条数据

CREATE TABLE `system_user`  (`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',`username` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户账号',`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '密码',`nickname` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户昵称',`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',`dept_id` bigint NULL DEFAULT NULL COMMENT '部门ID',`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '用户邮箱',`mobile` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '手机号码',`sex` tinyint NULL DEFAULT 0 COMMENT '用户性别',`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '头像地址',`status` tinyint NOT NULL DEFAULT 0 COMMENT '帐号状态(0正常 1停用)',`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',`deleted` char(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 129 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表';

SQL语句

INSERT INTO `system_user` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `email`, `mobile`, `sex`, `avatar`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `deleted`, `tenant_id`) VALUES (1, '张三', '123456', '往事随风', NULL, 1, 'zhangsan@163.com', '15478774547', 0, '', 0, '', '2024-07-18 14:49:44', '', '2024-07-18 14:49:44', '0', 0);

④ 在tps-system-biz模块下新增实体类SystemUser

package com.tps.cloud.system.entity;import java.util.Date;
import java.io.Serializable;/*** 用户信息表(SystemUser)实体类** @author makejava* @since 2024-07-18 11:35:11*/
public class SystemUser implements Serializable {private static final long serialVersionUID = 544417121746252574L;/*** 用户ID*/private Long id;/*** 用户账号*/private String username;/*** 密码*/private String password;/*** 用户昵称*/private String nickname;/*** 备注*/private String remark;/*** 部门ID*/private Long deptId;/*** 用户邮箱*/private String email;/*** 手机号码*/private String mobile;/*** 用户性别*/private Integer sex;/*** 头像地址*/private String avatar;/*** 帐号状态(0正常 1停用)*/private Integer status;/*** 创建者*/private String createBy;/*** 创建时间*/private Date createTime;/*** 更新者*/private String updateBy;/*** 更新时间*/private Date updateTime;/*** 是否删除*/private String deleted;/*** 租户编号*/private Long tenantId;//覆盖toString,方便打印@Overridepublic String toString() {return "Person: " + username + " " + nickname;}...省略Getter/Setter方法
}

⑤新建mapper包,编写 Mapper 接口类 SystemUserMapper .java

package com.tps.cloud.system.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tps.cloud.system.entity.SystemUser;public interface SystemUserMapper extends BaseMapper<SystemUser> {}

⑥在 TpsSystemBizApplication 启动类中添加 @MapperScan 注解,扫描 mapper 文件夹:

package com.tps.cloud.system;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.tps.cloud.system.mapper")
public class TpsSystemBizApplication {public static void main(String[] args) {SpringApplication.run(TpsSystemBizApplication.class, args);}}

⑦在DemoController 类中添加selectUser方法,从数据库查询用户信息,这里我们需要通过@Autowired注入SystemUserMapper

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/demo")
public class DemoController {@Autowiredprivate SystemUserMapper systemUserMapper;@GetMapping("/get")public String get() {return "恭喜你,你的接口通了!";}@GetMapping("/selectUser")public void selectUser() {System.out.println(("----- selectAll method test ------"));List<SystemUser> userList = systemUserMapper.selectList(null);userList.forEach(System.out::println);}
}

⑧ 通过ApiFox调用http://localhost:8080/demo/selectUser接口,IDEA console打印结果如下:
在这里插入图片描述
⑨ 现在我们完善一下接口,针对用户的增删改查接口,然后用ApiFox测试一下。

package com.tps.cloud.system.controller;import com.tps.cloud.system.entity.SystemUser;
import com.tps.cloud.system.mapper.SystemUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;
import java.util.UUID;@RestController
@RequestMapping("/user")
public class SystemUserController {@Autowiredprivate SystemUserMapper systemUserMapper;/*** 查询所有用户*/@GetMapping("/selectUser")public List<SystemUser> selectUser() {List<SystemUser> userList = systemUserMapper.selectList(null);return userList;}/*** 保存用户*/@PostMapping("/saveUser")public void saveUser(SystemUser user) {//设置ID值,目前缺少ID生成策略,先默认1Luser.setId(1l);systemUserMapper.insert(user);}/*** 更新用户信息*/@PutMapping("/updateUser")public void updateUser(SystemUser user) {systemUserMapper.updateById(user);}/*** 根据用户id删除用户*/@DeleteMapping("/deleteUser")public void deleteUser(String userId) {systemUserMapper.deleteById(userId);}/*** 根据用户id查询用户*/@GetMapping("/selectUserById")public SystemUser selectUserById(String userId) {SystemUser user = systemUserMapper.selectById(userId);return  user;}
}

小结

通过以上几个简单的步骤,我们实现 system_user表的 CRUD 功能,甚至连 XML 文件都不用编写!
从以上步骤中,我们可以看到集成 MyBatis-Plus 非常的简单,只需要引入 starter 依赖,简单进行配置即可使用。
MyBatisPlus不仅支持mysql,还支持的数据库:

  • mariadb 、oracle 、db2 、h2 、hsql 、sqlite 、postgresql 、sqlserver、presto 、Gauss 、Firebird。
  • Phoenix 、clickhouse 、Sybase ASE 、 OceanBase、达梦数据库 、虚谷数据库 、人大金仓数据库 、南大通用数据库。

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

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

相关文章

CSRF+XSS组合攻击实战

目录 0x01安装靶场 0x02分析功能点的请求接口&#xff0c;构造恶意请求 0x03寻找xss漏洞 0x01安装靶场 下载源码&#xff0c;解压到网站根目录 1.修改数据库配置文件 打开源码&#xff0c;进入到include目录下&#xff0c;打开数据库配置文件database.inc.php 将数据库的…

Template_C++

C模板 C提供了function template. function template&#xff1a;实际上是建立一个通用函数&#xff0c;其函数类型和形参类型不具体制定&#xff0c;用一个虚拟的类型来代表。这个通用的函数就称为函数模版。 是不是可以这样理解&#xff0c;函数模版就是给了一种功能&…

Keil开发IDE

Keil开发IDE 简述Keil C51Keil ARMMDK DFP安装 简述 Keil公司是一家业界领先的微控制器&#xff08;MCU&#xff09;软件开发工具的独立供应商。Keil公司由两家私人公司联合运营&#xff0c;分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公…

WebRTC音视频-环境搭建

目录 期望效果 1:虚拟机和系统安装 2:WebRTC客户端环境搭建 2.1&#xff1a;VScode安装 2.2&#xff1a;MobaXterm安装 3:WebRTC服务器环境搭建 3.1&#xff1a;安装openssh服务器 3.2&#xff1a;安装Node.js 3.3&#xff1a;coturn穿透和转发服务器 3.3.1&a…

全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院(广东青年职业学院)第一届“求是论坛”成功举办

为进一步深化现代职业教育体系建设理论研究&#xff0c;丰富行业产教融合共同体实践探索&#xff0c;7月13日&#xff0c;全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院&#xff08;广东青年职业学院&#xff09;第一届“求是论坛”在广东行政职业学院&…

【iOS】static、extern、const、auto关键字以及联合使用

目录 前言extern关键字static关键字const关键字 联合使用static和externstatic和constextern和const auto关键字 先了解一下静态变量所在的全局/静态区的特点&#xff1a;【iOS】内存五大分区 前言 上面提到的全局/静态区中存放的是全局变量或静态变量&#xff1a; 全局变量…

LabVIEW软件开发的雷区在哪里?

在LabVIEW软件开发中&#xff0c;有几个需要注意的雷区&#xff0c;以避免常见的错误和提高开发效率&#xff1a; 1. 不良的代码结构 雷区&#xff1a;混乱的代码结构和不清晰的程序逻辑。 后果&#xff1a;导致难以维护和调试的代码&#xff0c;增加了错误和故障的风险。 …

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归&#xff08;Least Angle Regression, LAR&#xff09;是一种用于回归分析的统计方法&#xff0c;它在某些方面类似于最小二乘回归&#xff0c;但提供了一些额外的优点。最小角回归由Bradley Efron等人提出&#xff0c;主要用于处理具有…

Leetcode双指针法应用

1.双指针法 文章目录 1.双指针法1.1什么是双指针法&#xff1f;1.2解题思路1.3扩展 1.1什么是双指针法&#xff1f; 双指针算法是一种在数组或序列上操作的技巧&#xff0c;实际上是对暴力枚举算法的一种优化&#xff0c;通常涉及到两个索引&#xff08;或指针&#xff09;从两…

【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中&#xff0c;持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器&#xff0c;通过其强大的插件生态系统和灵活的配置选项&#xf…

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件可以很大程度上减少编码。本文着重介绍如何在实战中使用MGB自动生成Mapper文件 1. 添加MyBatis Generator依赖 在pom.xml中添加必要的依赖 <dependency><groupId>org.mybatis.spring.boot</…

如何在Linux上部署Ruby on Rails应用程序

在Linux上部署Ruby on Rails应用程序是一个相对复杂的过程&#xff0c;需要按照一系列步骤进行。下面是一个基本的部署过程&#xff0c;涵盖了从安装所需软件到部署应用程序的所有步骤。 安装必要的软件 在部署Ruby on Rails应用程序之前&#xff0c;需要确保Linux系统上安装了…

【LeetCode】day15:110 - 平衡二叉树, 257 - 二叉树的所有路径, 404 - 左叶子之和, 222 - 完全二叉树的节点个数

LeetCode 代码随想录跟练 Day15 110.平衡二叉树257.二叉树的所有路径404.左叶子之和222.完全二叉树的节点个数 110.平衡二叉树 题目描述&#xff1a; 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 平衡二叉树的定义是&#xff0c;对于树中的每个节点&#xff0c;其左右…

三、初识C语言(3)

1.操作符 &#xff08;1&#xff09;算术操作符 - * / % 商 余&#xff08;取模&#xff09; 小算法&#xff1a; 若a<b&#xff0c;则a%b a 若a%b c&#xff0c;则0 < c < b-1 若两个int 类型数相除&#xff0c;结果有小数会被舍弃。 保留小数…

阿里云 申请免费ssl 证书

1控制台--数字证书管理服务 2 创建所需域名证书

下载安装VSCode并添加插件作为仓颉编程入门编辑器

VSCode下载地址&#xff1a;下载 Visual Studio Code - Mac、Linux、Windows 插件下载&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 仓颉社区中下载解压 cangjie.vsix 插件 打开VSCode 按 Ctrl Shift X 弹出下图 按照上图步骤依次点击选中我们下…

openstack设置IP直接登录,不需要加dashboard后缀

openstack 实验环境&#xff0c;openstack-t版&#xff0c;centos2009 修改配置文件 [rootcontroller ~]# vim /WEBROOT /etc/openstack-dashboard/local_settings #将dashboard去掉 WEBROOT /dashboard/ #改为 WEBROOT /[rootcontroller ~]# vim /etc/httpd/conf.d/openst…

vscode搭建PyQt + Quick开发环境

VScode搭建PyQt Quick开发环境 目录 环境准备 &#x1f514;安装必要的Python包 &#x1f514;&#x1f50e; PyQt5和PySide2的区别&#x1f4be; 安装PyQt5&#x1f4be; 安装PySide2 配置VScode &#x1f514;&#x1f4bb; 安装扩展 代码示例 &#x1f514;✔ Python调用Qt…

分布式 I/O 系统Modbus TCP 耦合器BL200

BL200 耦合器是一个数据采集和控制系统&#xff0c;基于强大的 32 位微处理器设计&#xff0c;采用 Linux 操作系统&#xff0c;可以快速接入现场 PLC、SCADA 以及 ERP 系统&#xff0c; 内置逻辑控制、边缘计算应用&#xff0c;支持标准 Modbus TCP 服务器通讯&#xff0c;以太…