流程控制语句:

(还没写全,先发布,后续自己补充)

========

迷惑操作:

最近看公司的项目,用的mysql,我看他们的查询语句写的是我没看过的样子,长这样(删除了部分敏感字段):

他在from后面接上的不是表,而是另一个查询语句返回的数据结构 ,这让我想起了mongodb中的管道操作,管道中的每一步操作后产生的结果都是下一次查询的表(视图),在这他是先查询了自己需要的结果,并取别名为 b 。查询是正确的,由此记录一下,拓展自己的能力。

SELECT *
        FROM(
            SELECT
                a.id,
                a.asset_type,
                CASE a.maintain_state
                    WHEN 0 THEN '维护中'
                END AS maintain_state
            FROM bm_forward a
            WHERE a.is_delete = 0
            AND a.asset_type = 0)b GROUP BY assets_id

时间条件查询:
下面这两种情况可以应对多数web开发场景

在没有写时分秒时,查询的条件都默认为0点0分0秒。
select * FROM sys_user where create_time <= '2022-5-25'

可以使用DATE_FORMAT去处理传入的时间,两个参数都能加字符串 ,在格式字符串后面还可以加时分秒
select * FROM sys_user where create_time <= DATE_FORMAT(now(),"%y-%m-%d")

大杂烩:
项目服务器部署基础环境搭建(含步骤):

redis搭建:

1、redis官网下载redis
此次下载的是redis5,若redis版本上6及其以上则需要安装gcc5.8以上。否则会安装失败。
2、文件传输
通过xftp放入指定文件夹/usr/tool/redis
此处我在/usr/下创建了tool文件夹,tool文件夹下创建了redis文件夹。
里面准备将所有基本工具都存放在tool中,
使用tar -zxvf redis-5.0.14.tar.gz /redis 。至此文件已解压到redis文件夹中,会产生redis-5.0.14文件夹,
进入该文件夹 cd redis-5.0.14, 执行安装命令 make,若出现error则可能是redis版本过6,正常出现 “Hint: It’s a good idea to run ‘make test’ 😉 ”。
再执行 make install ,正常出现 “Hint: It’s a good idea to run ‘make test’ 😉 ”。
至此redis安装完成。
redis默认安装路径为 /usr/local/bin
在此路径会看见

redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server

3、修改redis配置文件
配置文件在安装目录下,找到redis.conf. 使用vi 命令进行编辑。

1.daemonize 设置为yes 该设置为将redis以守护线程的模式启动,也就是开机就启动,不适用kill命令都不会终止运行。
 2. bind 修改为0.0.0.0.若是生产环境不需要设置,只用127.0.0.1的话就只允许本机访问。
 3. port可以修改,提高安全性。
 4. requirepass 密码自行修改。在bind修改的情况下一定要记得设置密码,简单密码安全性不高。

4、启动redis
切换到 /usr/local/bin。

//使用命令以配置文件的形式启动redis。	
redis-server /usr/tool/redis/redis-5.0.14/redis.conf

5、查看redis是否运行

ps -ef | grep redis

本地项目部署到服务器注意事项:

1、redis搭建一定要增加密码认证,可以修改端口、密码。并且在安全组中设置3306端口仅所在主机或者172.0.0.1端口有权限。[避免挖矿病毒通过3306端口注入]。
2、更改服务器的22端口,先增加访问端口,端口自己设置,增加端口后重启服务器,再限制通过22端口访问。[增加预防挖矿程序注入的可能]。
注意注意!没有设置密码的情况下,一定不要将bind改为0.0.0.0,这样极其容易被挖矿程序注入。

修改端口: vi /etc/ssh/sshd_config
#Port 22
Port 60022

git中切换分支的操作:
当时需求是拉取master分支的代码进行开发,但是想讲代码push到新的,空的分支去,不必去git中新创建分支。
我的解决办法是:

1.直接在idea中创建一个分支“dev”
2.然后点击该分支中的push按钮,就直接将本地已有代码上传了。

登录gitee中查看有dev分支,并且代码存在,然后将修改的代码再次通过git选择进行提交即可!

项目部署流程:
1.在本地启动项目没有问题的情况下,将配置文件修改为线上配置。
2.使用maven的生命周期中的install进行打包,打包之后会在target目录产生.jar文件,若依项目就是只要admin.jar即可。
3.公司现在是将代码放到/opt目录下,所以可以在opt中创建文件夹放前后端代码,牢记项目启动命令。java -jar xxx.jar
4.前端项目部署,使用命令npm build:xxx (dev或者pre这些环境别名),他会产生一个dist的目录,将这个文件夹上传到服务器的opt目录中,之前build时会产生nginx.conf这个文件,可以修改端口等。将这个文件替换nginx的这个配置文件,启动nginx,并按配置文件启动,命令应该是:./nginx /nginx.conf的路径。

注意点:jar包启动命令:
1.java -jar xxx.jar 这种关闭shell窗口程序就结束了。
2.nohup java -jar xxx.jar & 这个是关闭窗口后还会运行。