苍穹外卖04
Redis是什么:基于内存的key-value结构的数据库 特点: 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 官网:https://redis.io/ 中文网:https://www.redis.net.cn/ 数据类型 常用命令:字符串: set key value—设置指定key的值 get key—获取指定key的值 setex key seconds value—设置指定key的值,并在seconds后过期(常用于验证码) setnx key value—只有在key不存在时设置key的值 哈希: hset key field value—设置指定key的字段和值 hget key field—获取指定key的字段的值 hdel key field—删除指定key的字段 hkeys key—显示所有字段 hvals key—显示所有值 列表: 集合:
苍穹外卖03
...
苍穹外卖02
关于苍穹外卖的学习,今天继续添加功能 第一个功能启用/禁用员工账号首先查看接口文档 在控制层写,路径参数注解后面的status可省略(在两者名字相同时),这个项目我们约定修改的返回值Result无需使用泛型,而查询的需要使用泛型。 1234567891011/** *启用禁用员工 * @return */@PostMapping("/status/{status}")@ApiOperation("启用禁用员工账号")public Result startOrStop(@PathVariable("status") Integer status, Long id) { log.info("启用禁用员工账号:{},{}",status,id); employeeService.startOrStop(status,id); return...
苍穹外卖02续
截止目前我们已经实现了员工管理模块的许多功能,后续再想想密码修改的实现。接下来我们尝试实现分类模块的功能,由于该模块的所有功能与员工管理模块大差不差,故全记录在此篇文章。 以下是我们需要实现的所有功能 先从分类的分页查询开始,查看接口说明 得知它的参数为一个数据传输对象DTO。 由于是新的模块,我们新建控制层CategoryController类,业务层CategoryService接口和它的实现类CategoryServiceImpl类,持久层CategoryMapper类和它的配置文件CategoryMapper.xml。 CategoryController: 1234567891011121314151617181920212223242526/** * 分类管理 */@RestController@RequestMapping("/admin/category")@Slf4j@Api(tags = "分类相关接口")public class CategoryController { @Autowired ...
苍穹外卖01
本文章记录学习苍穹外卖的过程和遇到的问题。 首次接手苍穹外卖这个项目,可以发现并不是让我们从零开始建立的,我们是在一定基础上进行后续的功能开发的。并且提供了前端所有的源码以便于我们进行前后端联调测试,而且把先把学习重心放到后端实现上来。 我首先关注到的是这个项目的结构,跟目录下分了3个包,分别是common(普通类)、pojo(实体类等)和server(业务逻辑类等),把前端用nginx启动后,直接在server包下的SkyApplication类启动这个项目。发现这个项目运行在本地的8080上,登录和登出功能已经是做好了的。 然后老师带我们进行了需求分析,导入需要实现的功能接口,老师演示的是Yapi导入的接口,由于它已经停止服务我便使用apifox进行了接口导入。 第一个功能->新增员工 查看接口 在控制层EmployeeController类新增一个方法作为对外的接口 123456789101112/*** 新增员工* @param employeeDTO* @return*...
springboot_xushu
跟着up主徐庶做了一个springboot的小Demo,在后端实现了user的增删改查。以下是对本次学习的记录。 首先我打开了IDEA软件创建了一个用maven管理的springboot项目,勾选了web,mysql...
刷题日记2.26
1.前缀和前缀和提供一个时间复杂的为O(1)的区间查询。通过前缀和右端点与左端点-1之差可以得到其区间和。 本题链接: 【模板】前缀和 | 星码StarryCoding | 算法竞赛新手村 | ACM、OI、蓝桥杯、天梯赛、CCF、ACM-ICPC、大学生信息学竞赛 今日题解如下: 12345678910111213141516171819202122232425262728#include<bits/stdc++.h>using namespace std;using ll = long long;const int N = 1e5 +9;ll a[N], pre[N];int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int t; cin>>t; while(t--) { int n,q; cin >> n >> q; for(int i = 1; i <= n;...
刷题注意事项
1.scanf和printf 用于格式化输入输出 不能取消同步流 2.cin和cout(c++特性) 简洁,在取消同步流的情况下一般比scanf更快 取消同步流一定要写完整 1ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); 一般不要使用cout << endl;改用cout << ‘\n’; endl=’\n’+强制刷新缓冲区(比较慢而且一般也不需要) 3.输入就单独的输入,一会输入做io,一会做计算反而慢一点。 4.定义时一般使用using type xx = xxx;而不是#define xx xxx;前者为一个变量,后者为整体带入,如果没括号可能会导致计算错误。
编译原理
...
计算机科学学习记录
逻辑门的实现 NOT: AND: OR: XOR: 算术逻辑单元(ALU) 半加器(处理1+1以内的运算) 全加器(处理1+1+1以内的运算) 锁存器: 门锁: 矩阵排列门锁构成寄存器。