编写目的:记录一个需求是实现的全过程,以便回顾!
一、需求说明
某天,一个朋友跟我说,他想测下数据库的可承受的并发量,叫我帮忙写一个程序。我心想,就我这水平,半桶水,学艺不精,居然叫我,不知道能不能写出来,就姑且试试吧
需求如下:
1、打包成一个jar文件,在Linux运行
2、支持传入两个参数,一个是启动的线程数,另一个是每个线程插入数据库记录条数
例如:可以启动3个线程,每个线程插入3条记录,执行完毕后,数据库插入9条记录。
二、编程实现
技术实现:IDEA+Maven+Msql
没有进行模块拆分,所有功能写在一个文件中
源码下载地址:https://download.csdn.net/download/weixin_45589713/15405690
三、打包jar文件
3.1、菜单File->project structure
3.2、在弹窗最左侧选中Artifacts->"+",选jar,选择from modules with dependencies
3.3、
MainClass:选择jar包运行的主类
设置META-INF/MANIFEST.MF文件路径:不要使用默认的,可以随便保存在一个目录
3.4、jar包输出路径位置、依赖包信息等,直接点击OK
3.5、到这里导出jar还没有结束,继续点击Build–>Build Artifacts
3.5.1 初见构建
3.5.2 修改程序后,可以重新构建jar包。
3.6、构建jar成功,在项目下会多出out文件夹,可以看到构建的jar包
四、测试
程序测试相关命令:
启动参数说明:
thrednum:并发线程数
sqlrows:每个线程插入记录数
默认启动一个线程,插入1条记录。
java -jar mysql_tools.jar
java -jar -Dthrednum=2 mysql_tools.jar
java -jar -Dthrednum=2 -Dsqlrows=3 mysql_tools.jar
4.1 Windows上测试
cmd 窗口进入jar所在目录,运行命令:java -jar mysql_tools.jar,测试成功
4.2 Centos上测试
上传mysql_tools.jar文件到Centos上,然后到所在目录执行命令:java -jar mysql_tools.jar,测试成功
[root@izuf63c0r3hzuk54cnpkwhz testjar]# ls
mysql_tools.jar
[root@izuf63c0r3hzuk54cnpkwhz testjar]# java -jar mysql_tools.jar
启动线程数:1
每个线程插入记录数:1
INSERT INTO `test`.`t_rkjbqk_sjzx2` (`xb_mc`, `sfbjlk_dm`, `xjzdz`, `hyzk_dm`, `sfz_hm`, `whcd_mc`, `yszmyxrq`, `zxyy`, `xjzdz_dm`, `lkhjd_sj`, `csd`, `lq_grzrq`, `mz_dm`, `jkzk`, `zzmm_mc`, `sfbjqc_dm`, `csrq`, `jkzk_mc`, `hkxz_dm`, `qtzj_hm`, `jrxjzd_sj`, `gj_dm`, `mq_xm`, `whcd_dm`, `fq_xm`, `zzmm`, `gzdw`, `xb_dm`, `dh_hm`, `po_xm`, `sjcj_sj`, `csd_dm`, `sjcjdq_dm`, `hjdz`, `wlsjycsyy`, `xm`, `sjcjjg_mc`, `gj_mc`, `zxrq`, `sfzjlb_mc`, `zxyy_mc`, `hyzk_mc`, `sjcjdq_mc`, `ylbm`, `po_sfzj_hm`, `sfds`, `wlsjycsyy_mc`, `hjdz_dm`, `hybdrq`, `sjgx_sj`, `zy_mc`, `sfzjlb`, `zy`, `mq_sfzj_hm`, `mz_mc`, `hkxz_mc`, `chrq`, `fq_sfzj_hm`, `swrq`, `qyrkid`, `sfbjlk_mc`, `ID`, `data_num`, `instock_time`, `gateway_name`, `dataid`, `insert_datcenter_time`, `tid`, `insert_datetime`, `data_status`) VALUES ('男性', '2', '广东省佛山市南海区桂城街道同成社区居委会中海锦城', '90', '320113194907111615', '普通高级中学教育', NULL, NULL, '440605011065001', NULL, NULL, NULL, '01', NULL, NULL, '2', NULL, NULL, '1', NULL, NULL, '156', NULL, '60', NULL, NULL, '南京市栖霞区中建八局三公司', NULL, '18664645755', NULL, '2017-04-06 16:59:21', NULL, '440605011042000', '江苏省南京市栖霞区尧化街道办事处尧新社区居委会', NULL, NULL, '广东省佛山市南海区桂城街道灯湖社区居委会', '中国', NULL, '居民身份证', NULL, '未说明的婚姻状况', '广东省佛山市南海区桂城街道灯湖社区居委会', NULL, NULL, '2', NULL, '320113001007000', NULL, '2018-08-14 17:18:01', NULL, '01', NULL, NULL, '汉族', '非农业户口', NULL, NULL, NULL, 'f17207a89e764f35b96bc600778e5a45', NULL, '8fbbd71c-b884-4a07-9a33-ba211773ee0b', '9377940', '2020-12-21 08:43:57', 'qyrk', NULL, NULL, NULL, NULL, NULL)
[root@izuf63c0r3hzuk54cnpkwhz testjar]#