Archive

Author Archive

Mybatis映射BigDecimal问题

November 9th, 2018 No comments

Mybatis映射数据库类型中使用numberic和decimal时,
如果需要使用String进行数据传递但是小数位很长或者整数位很长的话
Mybatis会把数据映射成BigDecimal来处理
但是如果Mybatis会傻傻的使用.toString()来转换,结果可能会被转成科学记数法
今天某数据库存储的超长订单号就出现了这个问题,不说了,我去改代码了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// MyBatis的做法,直接调用Bigdecmal的.toString()
// 浮点数的打印时正常
new BigDecimal("10000000000").toString()
// >>10000000000
 
// 普通的数字字符串,没关系,我们发誓订单号不会超过限度,用数字类型没关系
new BigDecimal("100.000").toString()
// >>100.000
 
// 去除末尾多余的0,我们用了保留订单号,订单号用123开头,然后补0,
new BigDecimal("100.000").stripTrailingZeros().toString()
// >>1E+2
 
// 避免输出科学计数法, 这才是正确的做法,MyBatis怎么搞得,这点转换都不做,MyBatis还能干啥?
new BigDecimal("100.000").stripTrailingZeros().toPlainString()
// >>100
Categories: 语言编程 Tags: ,

PostgreSql查询正在执行的SQL和查询执行耗时的SQL

November 9th, 2018 No comments

运行在AWS RDS上的PostgreSql今天TransactionID耗尽,原因是有一个SQL执行占用CPU超过12小时

–查询正在执行的SQL

1
select * from pg_stat_activity where datname='schema名称';

–结束正在进行的R查询

1
select pg_cancel_backend(pid);

–结束正在执行CUD操作

1
select  pg_terminate_backend(pid)

Read more…

Categories: 系统管理, 语言编程 Tags: , ,

windows右键快速创建功能按键

November 9th, 2018 No comments

每天都需要在同一个目录下建立当日日期命名的文件夹,
就偷懒想把这个功能做到WINDOWS的右键。

STEP1.新建一个.reg文件,写入以下内容

1
2
3
4
5
6
7
8
9
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\Directory\Background\Shell\CMD_NAME]
"MUIVerb"="日期文件夹"
"Icon"="shell32.dll,3"
"Position"="top"
 
[HKEY_CLASSES_ROOT\Directory\Background\Shell\CMD_NAME\command]
@=“COMMAND”

Read more…

Categories: 系统管理 Tags: ,

[VBS]Excel获取所有Sheet的名称

November 9th, 2018 No comments

1.在当前Sheet里面获取当前Sheet名
选取任意单元格,编辑公式

1
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

2.在当前Sheet里面获取Workbook下所有的Sheet名
使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:

1
2
3
4
5
Sub Maco1()
For i = 1 To Sheets.Count
Cells(i, 1) = Sheets(i).Name
Next
End Sub

然后运行指定宏既可以在当前sheet里面获取到了

Categories: 零敲碎打 Tags: ,

CentOS 图形界面和字符界面切换

November 9th, 2018 No comments

使用Centos的版本安装进入系统后,默认是进入到命令行界面,
可以通过以下步骤配置CentOS图形界面。

STEP1. 安装桌面环境

1
# yum groupinstall "X Window System" "GNOME Desktop" "Graphical Administration Tools"

STEP2. 根据需要转换为图形模式和文本模式
默认级别转换为3(文本模式):

1
# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

默认级别转换为5(图形模式):

1
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

Read more…

Categories: 系统管理 Tags:

[CentOS] 使用s3fs-fuse挂载S3Bucket到本地分区

November 9th, 2018 No comments

准备工作
1.创建接入S3 Bucket的IAM用户
2.创建S3 Bucket,赋予IAM用户读写S3 Bucket的权限

测试环境
Amazon AMI Linux
CentOS 7.5

s3fs
s3fs allows Linux and macOS to mount an S3 bucket via FUSE. s3fs preserves the native object format for files, allowing use of other tools like s3cmd.

STEP1. 安装s3fs-fuse相关依赖包

1
2
 # install automake fuse fuse-devel gcc-c++ git \
 libcurl-devel libxml2-devel make openssl-devel

STEP2.下载s3fs-fuse,编译安装s3fs-fuse

1
2
3
4
5
6
7
# cd /usr/local/
# git clone https://github.com/s3fs-fuse/s3fs-fuse.git
# cd s3fs-fuse
# ./autogen.sh
# ./configure
# make
# make install

Read more…

Categories: 系统管理 Tags: , ,

CentOS6.x/7.x配置Nginx系统服务

September 20th, 2017 No comments

使用源代码编译方式安装Nginx的时候,肯定不如用用yum方式安装来得便捷,CentOS的系统服务需要自行配置。
自行配置Nginx为CentOS的系统服务时,出于进程管理考虑需要首先配置pid,出于安全考虑建议修改nginx的运行用户。

创建nginx.pid文件用于nginx主进程

1
touch /usr/local/nginx/logs/nginx.pid

修改conf/nginx.conf,设置pid和user

1
2
user     nobody;
pid       logs/nginx.pid;

CentOS6.x配置nginx系统服务
创建一个/etc/init.d/nginx文件

1
2
touch /etc/init.d/nginx
chmod 755 /etc/init.d/nginx

/etc/init.d/nginx文件中写入以下内容,
源文件取自yum方式安装后的文件,不过需要自己修改一下nginx的指向位置
nginx=”/usr/local/nginx/sbin/nginx”
NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”
Read more…

Categories: 系统管理 Tags: , ,