首页 > 数据库 >呵,老板不过如此,SQL还是得看我

呵,老板不过如此,SQL还是得看我

时间:2024-09-02 21:48:08浏览次数:11  
标签:不过如此 出来 代码 明细 接口 SQL 老板 底层

2018年7月,大三暑假进行时,时间过得飞快,我到这边实习都已经一个月了。

我在没工作之前,我老是觉得生产项目的代码跟我平时自学练的会有很大的区别

以为生产项目代码啥的都会规范很多,比如在接口上会做很多安全性的工作(自学练的时候确实学到的类似的案例),代码设计上会有很多设计模式的应用。

但实际上,并不像想象中那样。跟以前平时练的没有太大的区别,生产项目的代码也写不出花,接口的参数也没啥校验,甚至发现很多地方都是bad smell

最大的区别就是代码量很大,数据库里躺着百来张密密麻麻的表,代码上的Controller/Service/Dao的数量足以占满整个屏幕。

在这个过程中会出现一些之前没学过的技术栈,比如lombok/svn/swagger等,不过这些都很好学,不是什么大问题。

最近令我头疼的是SQL,SQL是真的难写。我本以为我是写Java的,但大多数时间都是去写SQL。

我是很想去理解我所负责的接口对应的底层数据库表是怎么设计的,但始终都没领悟到。

我只知道,我可以在这个表查这个字段,在那个表查那个字段,前端要什么数据,我就把这俩张表给关联起来,一起查出来就好了。

一个接口出去的数据,底层关联5、6张表,是很正常的事。

有的其实我也不知道为啥要关联的,反正看到历史代码是这么写,我就这么复制上去就完了

还是老样子,不乱改历史的代码,只管往里面增加,除非是真的被测试妹子报出bug了。

对接口的性能也没有啥要求,写出来的SQL索引不索引啥的,根本就不需要我操心,接口能出数据,我就是成功的。

有次需求也是令我发麻,既要得到明细的聚合值,又要展示对应明细数据,这可真的难倒我了。

我琢磨了两天,都没把SQL给写出来,后来就直接去问领导了,说这我卡住了,让他帮帮我。

“前两天不是有个需求嘛?既要统计每个售货机货道补货的数量,又要将每个货道的具体商品查询出来,然后要分页显示,我这边SQL没写出来”

他琢磨了会,说帮我看看,然后让我多训练些SQL相关的题。

我又回工位继续琢磨了,训练SQL相关的能力,我想到的就只有LeetCode了。没想到我还要在LeetCode刷SQL啊。

过了几小时,他喊我去他工位,发了一条SQL给我,让我看行不行,符不符合需求。

我都不用跑sql,这明显就不行。(原来他也写不出来)

我对老板说:”不行哦,这只有统计信息,还要展示sku的明细呢,我根据你的SQL,在这基础上我再想想

最后我嵌套多个子查询,组合使用concatgroup_concat完成信息查询,然后在程序里解析字符串完成数据的组装。

这能写出来真不容易,感觉自己Java技术没啥进展,SQL能力倒是提升了不少。

虽说系统貌似用了SpringCloud,但是没看到远程调用的地方,SpringCloud只有在配置文件才能看到他的踪影,不过我在业余的时间里学了下。我终于踏进了分布式/微服务领域的大门了。

其他的就没啥特别的,来来去去都是针对后台做一些增删改查,也没啥机会接触到高级的技术栈。

上班一个月了,领到工资的感觉是真的爽,行政是支付宝转账的,实打实的3500转在支付宝上。

底层程序员》我的故事持续连载中...

标签:不过如此,出来,代码,明细,接口,SQL,老板,底层
From: https://www.cnblogs.com/Java3y/p/18393617

相关文章

  • 详细分析MySQL事务日志(redo log和undo log)
    innodb事务日志包括redolog和undolog。redolog是重做日志,提供前滚操作,undolog是回滚日志,提供回滚操作。undolog不是redolog的逆向过程,其实它们都算是用来恢复的日志:1.redolog通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的......
  • MySQL 基础命令
    目录一、MySQL简介1.MySQL的主要特点包括2.MySQL的主要用途包括:二、MySQL基础命令1.基本操作1.1进入1.2选择数据库1.3修改密码1.4所有命令后面都要加“;”2.创建2.1创建数据库2.2创建数据表2.3常见字段3.修改/更新3.1添加表字段3.2删除表字段......
  • 「漏洞复现」用友NC link/content SQL注入漏洞
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......
  • [20240902]验证sql_idz.sh计算PLSQL代码块.txt
    [20240902]验证sql_idz.sh计算PLSQL代码块.txt--//测试验证sql_idz.sh计算PLSQL代码块是否正确.1.环境:SYS@book>@ver2==============================PORT_STRING                  :x86_64/Linux2.4.xxVERSION                     ......
  • [20240902]建立完善sql_idz.sh脚本.txt
    [20240902]建立完善sql_idz.sh脚本.txt--//增加hash_value的16进制显示采用大小写显示.$cat-v~/bin/sql_idz.sh#!/bin/bash#calcucatesql_textoffull_hash_value(16),hash_value(10),sql_id(32).#argv1sqlstatementorsqloftextfile#argv2flag:0=sqlstatement......
  • 基于centos7.5安装mysql8
    @目录环境初始化部署mysql配置主从报错问题解决重启集群操作环境初始化mysql官网下载使用环境VMware17,centos7.5节点IPmysql01192.168.200.20mysql02192.168.200.21初始化两台节点;免密,主机名,主机映射等viinit.sh#!/bin/bash#定义节点信息NODES=("1......
  • 如何用MySQL设计一个高效的关系数据库架构
    如何用MySQL设计一个高效的关系数据库架构设计一个高效的关系数据库架构是确保数据库性能、可维护性和扩展性的关键。一个良好的数据库设计不仅能够提高查询效率,还能减少数据冗余,降低维护成本。以下将详细介绍如何用MySQL设计一个高效的关系数据库架构,包括设计原则、规范......
  • Celery 任务:SQLAlchemy 会话处理指南
    最近在做AIRAG相关的项目功能,对于RAG需要生成一些文本处理的异步任务,使用到了Celery。今天就写写关于Celery任务的文章,SQLAlchemy的真实情况是:它的学习曲线比DjangoORM更陡峭需要一些示例代码你需要了解一些较低层次的概念有一些难以理解的文档如果您确实使用`SQLAlch......
  • Mysql基础练习题 610.判断三角形 (力扣)
    题目:对每三个线段报告它们是否可以形成一个三角形题目连接:https://leetcode.cn/problems/triangle-judgement/description/建表插入数据:CreatetableIfNotExistsTriangle(xint,yint,zint)TruncatetableTriangleinsertintoTriangle(x,y,z)values('13'......
  • 专项练习-数据库SQL-177题(上)
    ※食用指南:文章内容为牛客网《专项练习-数据库SQL》167道选择题(上),重点笔记,用于重复思考错题,加深印象练习传送门:专项练习-数据库SQL-177题目录:1、查询出每门课都大于80分的学生姓名2、选取数据插入到另一张表3、运算符把NULL的值对应的记录排除掉4、删除重复记录,保留......