常用知识总结

技巧总结

fastjson序列化时不忽略为空的字段

1
2
3
4
//将为空的字段显示为空字符串
JSON.toJSONString(changeEvent, SerializerFeature.WriteNullStringAsEmpty);
//将为空的字段显示为null
JSON.toJSONString(changeEvent, SerializerFeature.WriteMapNullValue)

nginx正向代理

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 8888; # 选择一个合适的端口号,此处为 8888
server_name localhost; # 可以是本机的 IP 地址或 localhost
location / {
resolver 8.8.8.8; # 使用 Google 的 DNS 服务器,可以根据需要更改
proxy_pass http://$host$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

git代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 设置HTTP代理
git config --global http.proxy http://127.0.0.1:7890

# 设置HTTPS代理
git config --global https.proxy http://127.0.0.1:7890

# 关闭HTTP代理
git config --global --unset http.proxy

# 关闭HTTPS代理
git config --global --unset https.proxy

# 查看HTTP代理
git config --global http.proxy

# 查看HTTPS代理
git config --global https.proxy

mysql创建触发器

1
2
3
4
5
6
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name FOR EACH ROW
BEGIN
-- 触发器执行的SQL语句
END;

window事件id

1
2
3
4
事件id:
1074 重启
6005 启动
6006 关机

oracle结束job

1
2
3
4
5
6
7
8
9
10
11
12
//获取正在运行的job
select * from dba_jobs_running;


//获取正在运行job(24)的详细信息
select b.SID,b.SERIAL#,c.SPID
from dba_jobs_running a,v$session b,v$process c
where a.sid = b.sid and b.PADDR = c.ADDR and a.job=24


//杀死job
ALTER SYSTEM KILL SESSION '75,46547';

mysql查询排序规则

1
SELECT table_name, column_name, collation_name FROM information_schema.columns WHERE table_schema = 'your_database_name';

jar包压缩解压

1
2
3
4
5
# 解压
jar -xvf *.jar

# 压缩
jar -cfM0 name.jar BOOT-INF/ META-INF/ org/

mysql插入或更新

1
2
3
4
5
6
7
8
# 需要有唯一索引或者主键才能判断是否执行插入或更新
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)
ON DUPLICATE KEY UPDATE column1 = value1, column2 = value2, ...;


INSERT INTO t_pm_unmatchalarmpoint (Company_Id, DCS_Code, PrdtCell_Id, Tag, Write_Date)
VALUES (25, 2, 22528, 1, '2022-01-01 11:11:11')
ON DUPLICATE KEY UPDATE Write_Date = sysdate();

oracle强制结束进程

1
ALTER SYSTEM KILL SESSION '1447,9425' immediate; 

oracle创建自增序列

1
2
3
4
5
6
7
8
9
10
11
12
13
create sequence s_ad_alarmexaminerec
minvalue 1 --增长最小值
maxvalue 9999999999 --增长最大值,也可以设置NOMAXvalue -- 不设置最大值
start with 1 --从1=开始计数
increment by 1 --自增步长为1
cache 50 --设置缓存cache个序列,如果系统down掉了或者其它情况将会导致序列不连续,也可以设置为---NOCACHE防止跳号
cycle; --循环,当达到最大值时,不是从start with设置的值开始循环。而是从1开始循环

-- 删除
DROP SEQUENCE s_PM_TAGEXTRAMESSAGE;

-- 修改
ALTER SEQUENCE s_PM_MOBILELIST INCREMENT BY 10001;

修改时区

1
2
3
4
5
6
7
8
9
10
11
12
#容器
docker exec -it -u root 容器名或id /bin/sh
mkdir -p /usr/share/zoneinfo/Asia
exit
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia
docker exec -it -u root 容器名或id /bin/sh
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#tomcat
vi bin/catalina.sh

JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Duser.timezone=GMT+08"

mysql备份恢复

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#备份
mysqldump -h10.252.110.183 -P6033 -umes_opal -pMes_opal123 --default-character-set gbk --single-transaction mes_opal --no-create-info t_ad_alarmrec -w "alarm_point_id is not null order by alarm_rec_id desc" > D:\chenbo\alarmrec20230411.sql

mysqldump -h10.252.110.183 -P6033 -umes_opal -pMes_opal123 --default-character-set gbk --no-create-info mes_opal t_ad_alarmevent -w "alarm_point_id is not null" > D:\chenbo\alarmevent.sql


#恢复
mysql -h10.252.110.180 -umes_opal -pMes_opal123
use mes_opal
source D:\chenbo\alarmevent.sql
source D:\chenbo\alarmrec.sql

#其他命令
no-create-db, —取消创建数据库sql(默认存在)
no-create-info,—取消创建表sql(默认存在)
no-data —不导出数据(默认导出)
add-drop-database —增加删除数据库sql(默认不存在)
skip-add-drop-table —取消每个数据表创建之前添加drop数据表语句(默认每个表之前存在drop语句)
skip-add-locks —取消在每个表导出之前增加LOCK TABLES(默认存在锁)
skip-comments —注释信息(默认存在)

window自启动jar

1
2
3
4
5
6
7
8
9
10
11
#新建start.bat
java -jar xxx.jar
#新建start.vbs
createobject("wscript.shell").run"C:\testRestartJar\start.bat",0

#window+R打开自启动目录
shell:Common Startup

放入start.vbs的快捷方式

任务计划程序

删除重复记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
delete
from t_ad_alarmevent
where event_id in (
SELECT event_id
FROM (
SELECT event_id,
event_type_id,
alarm_point_id,
alarm_flag_id,
start_time,
alarm_time,
priority,
limit_value,
in_shelved,
in_suppressed,
operator,
des,
previous_value,
now_value,
parameter,
unit_code,
prdtcell_id,
dcs_code,
tag,
alarm_flag,
row_number() over (
PARTITION BY event_type_id,
alarm_point_id,
alarm_flag_id,
start_time,
alarm_time,
priority,
limit_value,
in_shelved,
in_suppressed,
operator,
des,
previous_value,
now_value,
parameter,
unit_code,
prdtcell_id,
dcs_code,
tag,
alarm_flag
ORDER BY
event_id ASC
) rn
FROM t_ad_alarmevent
WHERE write_time > '2022-09-20 20:00:00'
) t
WHERE t.rn > 1
)

linux端口测试

1
2
3
4
5
6
7
8
# 安装
yum -y install nc

# 测试udp端口
nc -uvz 10.121.2.199 9998

# 测试tcp端口
nc -zv 10.121.2.199 8080

window查看端口占用

1
2
3
4
netstat -aon|findstr "8080"

# 其中-T是包括了子进程,-F是强制
taskkill /PID 7452 -T -F

Java删除集合重复项

1
2
3
protected final <T> List<T> removeDuplicates(List<T> list) {
return new ArrayList<>(new LinkedHashSet<>(list));
}

oracle解除锁表

1
2
3
4
# 查询
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
# 杀死进程
alter system kill session 'sid,serial';

git

1
2
3
4
5
6
7
8
# 取消每次push时验证密码
git config --global credential.helper store

# 配置仓库地址
git clone https://gitee.com/cheebo/note.git

# 强制拉取
git pull --rebase origin master

IAAS,PAAS,SAAS

  • IAAS(Infrastructure as a Service):基础设施即服务
    • 提供基础服务,例如云服务器
  • PAAS(Platform as a Service):平台即服务
    • 对外提供一项单独的服务,例如支付系统
  • SAAS(Software-as-a-Service):软件即服务
    • 对外提供一套完善的系统,例如财务系统