SpringBoot项目实战(一)—— 整合mybatis-plus

一、mybatis-plus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

二、实战

1、添加mysql依赖

        <!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency>

 2、yml文件配置

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/fcy_blogs?useUnicode=true&characterEncoding=UTF-8username: rootpassword: root

3、创建包名

4、mysql数据库创建表sys_user

CREATE TABLE `sys_user` (`user_id` bigint NOT NULL,`user_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名',`password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '密码',`real_name` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '姓名',`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '性别(1-男 2-女)',`salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '随机盐',`phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '简介',`avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '头像',`dept_id` bigint DEFAULT NULL COMMENT '部门ID',`lock_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-正常,9-锁定',`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-正常,1-删除',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '修改时间',`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建者',`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人',PRIMARY KEY (`user_id`) USING BTREE,KEY `user_idx1_username` (`user_name`) USING BTREE,KEY `user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='用户表';

5、pom文件引入mybatis-puls依赖

        <!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.2</version></dependency>

6、在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

@SpringBootApplication
@MapperScan("com.example.springboot01.blogs.mapper")
public class Springboot01Application {public static void main(String[] args) {SpringApplication.run(Springboot01Application.class, args);}}

7、创建实体类SysUser

package com.example.springboot01.blogs.entity;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;/*** <p>* 用户实体类* </p>** @author fcy* @since 2023-11-22*/
@Data
@TableName("sys_user")
public class SysUser extends BaseEntity{/*** 主键ID*/@TableId(value = "user_id", type = IdType.ASSIGN_ID)private Long userId;/*** 用户名*/private String userName;/*** 密码*/private String password;/*** 姓名*/private String realName;/*** 随机盐*/@JsonIgnoreprivate String salt;/*** 锁定标记*/private String lockFlag;/*** 手机号*/private String phone;/*** 头像*/private String avatar;/*** 部门ID*/private Long deptId;/*** 0-正常,1-删除*/@TableLogicprivate String delFlag;
}
package com.example.springboot01.blogs.entity;import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Getter;
import lombok.Setter;import java.time.LocalDateTime;/*** <p>* 抽象实体* </p>** @author fcy* @since 2023-11-22*/
@Getter
@Setter
public class BaseEntity {/*** 创建者*/@TableField(fill = FieldFill.INSERT)private String createBy;/*** 创建时间*/@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;/*** 更新者*/@TableField(fill = FieldFill.INSERT_UPDATE)private String updateBy;/*** 更新时间*/@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;
}

8、编写 Mapper 包下的 SysUserMapper接口

package com.example.springboot01.blogs.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springboot01.blogs.entity.SysUser;public interface SysUserMapper extends BaseMapper<SysUser> {
}

9、编写service包下的 SysUserService接口

package com.example.springboot01.blogs.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot01.blogs.entity.SysUser;/*** <p>* 实现接口* </p>** @author fcy* @since 2023-11-22*/
public interface SysUserService extends IService<SysUser> {
}

9、编写实现类

package com.example.springboot01.blogs.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot01.blogs.entity.SysUser;
import com.example.springboot01.blogs.mapper.SysUserMapper;
import com.example.springboot01.blogs.service.SysUserService;
import org.springframework.stereotype.Service;/*** <p>* 实现类* </p>** @author fcy* @since 2023-11-22*/
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {}

10、控制类

package com.example.springboot01.blogs.controller;import com.example.springboot01.blogs.entity.SysUser;
import com.example.springboot01.blogs.service.SysUserService;
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;
import java.util.List;/*** <p>* 控制类* </p>** @author fcy* @since 2023-11-22*/
@RestController
@RequestMapping("/user")
public class SysUserController {@Resourceprivate SysUserService sysUserService;@GetMapping("/list")public List<SysUser> getLists() {return sysUserService.list();}}

11、验证http://localhost:8090/user/list

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

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

相关文章

硬核神作|2w字带你拿下Sentinal

目录 Sentinel概述 基本介绍 Sentinel 基本核心概念 Sentinel安装 简单安装启动 启动配置项 SpringCloud简单整合 实战架构 父工程pom文件 teacher-service服务 student-service服务 测试 整合Sentinel SpringCloud微服务保护方案解读 服务雪崩定义 问题的产生 …

基于C#实现Bitmap算法

在所有具有性能优化的数据结构中&#xff0c;我想大家使用最多的就是 hash 表&#xff0c;是的&#xff0c;在具有定位查找上具有 O(1)的常量时间&#xff0c;多么的简洁优美&#xff0c;但是在特定的场合下&#xff1a; ①&#xff1a;对 10 亿个不重复的整数进行排序。 ②&am…

竞赛 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/pos…

【LeetCode刷题-链表】--25.K个一组翻转链表

25.K个一组翻转链表 思路&#xff1a; 把链表节点按照k个一组分组&#xff0c;可以使用一个指针head依次指向每组的头节点&#xff0c;这个指针每次向前移动k步&#xff0c;直至链表结尾&#xff0c;对于每个分组&#xff0c; 先判断它的长度是否大于等于k&#xff0c;若是&am…

HT560 30W 过温限幅 D类音频功率放大器

HT560具有过温限幅功能&#xff0c;当芯片内部温度达到过温限幅点&#xff0c;HT560自动降低增益&#xff0c;使其IC能够连续播放而不间断。另外&#xff0c;HT560具有功率限制功能&#xff0c;一种是限幅功能&#xff0c;在输出端限制一定的输出幅度&#xff0c;使其不损坏喇叭…

Day40:139.单词拆分、背包问题总结

文章目录 139.单词拆分思路代码实现 背包问题总结背包类型递推公式 139.单词拆分 题目链接 思路 确定dp数组以及下标的含义 dp[i] : 从0开始长度为i的字符串是否可以拆分为一个或多个在字典中出现的单词确定递推公式 如果确定dp[j] 是true&#xff0c;且 [j, i] 这个区间的子…

linux CentOS7.6安装jenkins(小白版本)

前言 本人是一个前端开发者&#xff0c;由于有时候需要发版自己的东西&#xff0c;所以想搞一个Jenkins玩玩&#xff0c;看了网上好多教程&#xff0c;但是都不是针对小白的&#xff0c;比如linux怎么输入&#xff0c;怎么结束&#xff0c;自己也是搞了好久踩了好多坑 所以记录…

如何用惯性动作捕捉系统,快速创建数字人三维动画?

在动画制作领域&#xff0c;惯性动作捕捉技术已经逐渐成为一种重要的制作手段。通过动捕设备能够将动捕演员真实的动作转化为数字数据&#xff0c;然后在动画中再现这些动作。为了创造出逼真、流畅的数字人动画&#xff0c;惯性动作捕捉系统成为了一大工具。 根据采集方式的不…

HarmonyOS ArkTS 应用添加弹窗(八)

概述 在我们日常使用应用的时候&#xff0c;可能会进行一些敏感的操作&#xff0c;比如删除联系人&#xff0c;这时候我们给应用添加弹窗来提示用户是否需要执行该操作&#xff0c;如下图所示&#xff1a; 弹窗是一种模态窗口&#xff0c;通常用来展示用户当前需要的或用户必须…

2023 年 亚太赛 APMCM (B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 问题一&#xff1a; 建立没有作物的玻璃温室内的温度和风速分…

【Linux】Linux的常用基本指令

Linux常用基本指令 Linux指令的历史背景前言说明一、 ls 列出文件中的所有内容常用选项 二、pwd 显示当前所在目录进程三、cd 将当前工作目录改变到指定的目录下常用样例 四、touch 1. 更改文档或目录的日期时间 2. 新建一个不存在的文件常用选项 四、mkdir 1. 更改文档或目录的…

[MySQL-基础]SQL语句

目录 hello! 这里是欧_aita的频道。 今日语录: 只有放弃才是真正的失败。 祝福语&#xff1a;愿你的代码生活充满注释&#xff0c;逻辑清晰&#xff0c;debug之路畅通无阻。 大家可以在评论区畅所欲言&#xff0c;可以指出我的错误&#xff0c;在交流中共同进步。 欢迎关注我的…