从零到一构建短链接系统(三)
1.根据数据库表,利用在线网站https://jully.top/generator/
根据数据库Info自动生成代码
2.在entity中创建UserDO
@Data
@TableName("t_user")
public class UserDO {
/**
* id
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 真实姓名
*/
private String realName;
/**
* 手机号
*/
private String phone;
/**
* 邮箱
*/
private String mail;
/**
* 注销时间戳
*/
private Long deletionTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
/**
* 删除标识 0:未删除 1:已删除
*/
private Integer delFlag;
}
3.admin的pom.xml文件中引入持久层框架
4.admin的application.yaml中引入持久层配置文件,并改成自己的数据库名
5.在ShortLinkAdminAppliaction中添加持久层扫描注解
@MapperScan("com.oli.shortlink.admin.dao.mapper")
一般来说一定要加上路径
6.shortlink-all的pom.xml加上lombok(可在其余步骤之前其实)
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
7.mapper中创建UserMapper接口
public interface UserMapper extends BaseMapper<UserDO> {}
8.service中创建UserService接口
public interface UserService extends IService<UserDO> {}
9.service中创建impl目录,目录中创建UserServiceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {}
10.UserController增加注解@RequiredArgsConstructor
比@Autowired和@Resource好
再增加private final UserService userService;
11.设置一手自动导入包

12.添加目录dto.req和dto.resp,并在resp目录下创建UserRespDTO
只需要有用的就行
@Data
public class UserRespDTO {
/**
* id
*/
private Long id;
/**
* 用户名
*/
private String username;
/**
* 真实姓名
*/
private String realName;
/**
* 手机号
*/
private String phone;
/**
* 邮箱
*/
private String mail;
}
13.UserService中添加
UserRespDTO getUserByUsername(String username);
14.UserServiceImpl中添加
public UserRespDTO getUserByUsername(String username) {return null;
}
15.修改UserServiceImpl
@Servicepublic class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {public UserRespDTO getUserByUsername(String username) {LambdaQueryWrapper<UserDO> queryWrapper = Wrappers.lambdaQuery(UserDO.class).eq(UserDO::getUsername,username);UserDO userDO = baseMapper.selectOne(queryWrapper);UserRespDTO result = new UserRespDTO();BeanUtils.copyProperties(userDO,result);return result;}}
16.在sqlyog中创建一条用户记录
17.UserController改为
@RestController@RequiredArgsConstructorpublic class UserController {private final UserService userService;/***根据用户名查询用户信息*/@GetMapping("/api/shortlink/v1/user/{username}")public UserRespDTO getUserByUsername(@PathVariable("username") String username){return userService.getUserByUsername(username);}}
18.启动项目后用apifox发送请求,如下图所示返回了正确结果
相关文章:
从零到一构建短链接系统(三)
1.根据数据库表,利用在线网站https://jully.top/generator/ 根据数据库Info自动生成代码 2.在entity中创建UserDO Data TableName("t_user") public class UserDO { /** * id */ private Long id; /** * 用户名 */ private String username; /** * 密码…...
C语言易错知识点:scanf函数
scanf在C语言学习中比较常用,但因为其涉及屏幕缓冲区导致有的时候会调入陷阱,下面分享一下常见的需要注意的事项: 1.输入末尾带有回车\n 当我们输入数据后,最后按下回车时,屏幕缓冲区的末尾都会含有这个字符 scanf的…...
如何实现图片上传至服务器
在绝大多数的项目中都会涉及到文件上传等,下面我们来说一下技术派中是如何实现原生图片上传的,这个功能说起来简单,但其实对于技术还是有考验的。图片的上传涉及到IO读写,一个文件上传的功能,就可以把IO流涉及到的知识…...
OSPF协议全面学习笔记
作者:BSXY_19计科_陈永跃 BSXY_信息学院 注:未经允许禁止转发任何内容 OSPF协议全面学习笔记 1、OSPF基础2、DR与BDR3、OSPF多区域4、虚链路Vlink5、OSPF报文6、LSA结构1、一类/二类LSA(Router-LSA/Network-LSA) 更新完善中... 1、…...
acwing算法提高之搜索--剪枝
目录 1 介绍2 训练 1 介绍 本专题用来记录使用dfs剪枝技巧求解的题目。 剪枝有以下思路: 优化搜索顺序。可行性剪枝。最优性剪枝。唯一性剪枝,也叫去除冗余。记忆化搜索,也叫dp。 2 训练 题目1:165小猫爬山 C代码如下&#…...
鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)上篇
提供具有网页显示能力的Web组件,ohos.web.webview提供web控制能力。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。示例效果请以真机运行为准,当前IDE预览器不支持。 需要权…...
TPU浅谈
前言 大家好,我是jiantaoyab,上篇文章讲了FPGA和ASIC,讲解了 FPGA 如何实现通过“软件”来控制“硬件”,以及我们可以进一步把 FPGA 设计出来的电路变成一块 ASIC 芯片。今天我们来看看TPU。大家可以点击这篇文章TPU深入了解TPU。…...
华为OD机试 - 求字符串中所有整数的最小和(Java JS Python C C++)
题目描述 输入字符串s,输出s中包含所有整数的最小和。 说明: 字符串s,只包含 a-z A-Z 合法的整数包括 1)正整数:一个或者多个0-9组成,如 0 2 3 002 102 2)负整数:负号 – 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023 输入描述 包含数字的字符…...
goland设置保存文件时不将4个空格转为TAB
goland设置保存文件时不将4个空格转为TAB 版本:GoLand 2022.3 设置路径: Settings -> Editor -> Code Style -> Go -> Run gofmt图示:...
基于Linux内核的socket编程(TCP)的C语言示例
原文地址:https://www.geeksforgeeks.org/socket-programming-cc/ 服务端: #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <unistd.h>#…...
【WEEK3】 【DAY4】JSON交互处理第三部分【中文版】
2024.3.14 Thursday 接上文【WEEK3】 【DAY3】JSON交互处理第二部分【中文版】 目录 6.7.编写抽象类6.7.1.原因6.7.2.新建JsonUtils.java6.7.3.在UserController添加一个方法json6验证抽象类可调用6.7.4.在UserController添加一个方法json7验证该抽象类可复用6.7.5.运行 6.8.…...
下载chromedrive,使用自动化
1、先看一下自己浏览器的版本 2、访问 https://googlechromelabs.github.io/chrome-for-testing/...
D-Star 寻路算法
D-Star 寻路算法 下面简写 D-Star 为 D* D算法:D 算法”的名称源自 Dynamic A Star,最初由Anthony Stentz于“Optimal and Efficient Path Planning for Partially-Known Environments”中介绍。它是一种启发式的路径搜索算法, 适合面对周围环境未知或者…...
mysql5.7编译安装
MySQL 5.7在不同操作系统上的编译安装过程略有不同,以下是在Linux系统上编译安装MySQL 5.7的一般步骤: 1. 安装编译所需的依赖包 sudo yum install gcc-c cmake ncurses-devel bison openssl-devel 2. 下载MySQL源码包和Boost库并解压 wget https://dev.mysql.com/get/Dow…...
Java项目实战记录:雷达数据渲染
目录 Java项目实战记录:雷达数据渲染业务背景代码逻辑数据结构颜色渲染MapContent加载数据并输出截图 完整代码GenerateMapImage地图渲染工具测试代码 渲染效果 Java项目实战记录:雷达数据渲染 业务背景 我之前已经成功使用Java语言解析了C处理的雷达数…...
进程的概念 | PCB | Linux下的task_struct | 父子进程和子进程
在讲进程之前首先就是需要去回顾一下我们之前学的操作系统是干嘛的,首先操作系统是一个软件,它是对上提供一个良好高效,稳定的环境的,这是相对于用户来说的,对下是为了进行更好的软硬件管理的,所以操作系统…...
【GPT-SOVITS-03】SOVITS 模块-生成模型解析
说明:该系列文章从本人知乎账号迁入,主要原因是知乎图片附件过于模糊。 知乎专栏地址: 语音生成专栏 系列文章地址: 【GPT-SOVITS-01】源码梳理 【GPT-SOVITS-02】GPT模块解析 【GPT-SOVITS-03】SOVITS 模块-生成模型解析 【G…...
2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)
1、log4j2 特征: 恶意请求中包含 JNDI 协议地址,如"ldap://"、"rmi://"等,被 log4j2 解析为 JNDI 查找。 原理: 在日志输出中,未对字符进行严格的过滤,执行了 JNDI 协议加载的远程恶…...
亮点抢先看!4月16-17日,百度Create大会开设“AI公开课”,大咖带你打造赚钱工具
3月16日,2024百度Create AI开发者大会正式开放售票,嘉宾套票定价399元。据悉,本次大会以“创造未来(Create the Future)”为主题,设有20深度论坛、超30节AI公开课、3000平AI互动体验区和AI音乐节等精彩环节…...
【笔记本清灰/实用经验】荣耀Magicbook14-2020款-R5-4500U-清灰实战
清灰有风险,动手需谨慎,本文只分享本人的清灰过程,对使用它所产生的任何后果不任何负责任 文章目录 背景信息准备阶段工具准备信息收集 正式清灰初始化清灰流程放掉身体的静电(重要)拆笔记本后盖断开电源(重…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
