IDEA打jar包》监控数据库表数据变动,实现图表变动数据实时显示

本文详细介绍了如何打包Java项目为jar文件,并通过数据库触发器(MySQL和SQLServer)来自动运行jar包。内容涵盖项目结构、使用Maven和lib下jar包的打包方法,以及jar包的测试执行。此外,还展示了如何在数据库表数据变动时,实现实时图表更新。
摘要由CSDN通过智能技术生成

目录

附项目websocket-chart的Github地址

十六、打jar包

1、项目目录结构

2、多个class文件打jar包

(1)java文件中未使用其他jar包

(2)java文件中使用maven导入的jar包

(3)java文件中使用lib下第三方jar包

3、项目打jar包

4、执行导出jar包

5、导出jar包成功

6、测试jar包是否正常

(1)先启动项目websocket-chart

(2.1)DOS命令运行jar包

(2.2)Mysql数据库触发器运行jar包

(2.3)SqlServer数据库触发器运行jar包

参考链接


附项目websocket-chart的Github地址

监控数据库表数据变动,实现图表变动数据实时显示


十六、打jar包

1、项目目录结构

2、多个class文件打jar包

1java文件中未使用其他jar包

 

2java文件中使用maven导入的jar包

I、初始配置

II、配置jar包

》Project Structure>Artifacts》右侧 选中websocket-chart:jar》

修改项目包名clientToServer  注意,此处必须一下一下使用键盘按键Backspace删除字符,不能直接选中删除。

包导出位置E:\tempJarFolder

》切换Output Layout标签》点击

》切换Output Layout标签》点击》File》

找到并选中工作空间项目websocket-chart下的文件**.class》点击OK》

D:\developsoft\javaweb\IDEA\software\idea-win64\ideaWorkspace\zLearnProjects\websocket-chart\target\classes\com\zxw\websocket\UserWebSocketClient.class
D:\developsoft\javaweb\IDEA\software\idea-win64\ideaWorkspace\zLearnProjects\websocket-chart\target\classes\com\zxw\websocket\UserWebSocketClientToServer.class

3)java文件中使用lib下第三方jar包

 

3、项目打jar包

 

4、执行导出jar包

IntelliJ IDEA 2019.3 x64(双击桌面软件)》Build》点击Artifacts...》

5、导出jar包成功

6、测试jar包是否正常

(1)先启动项目websocket-chart

(2.1)DOS命令运行jar包

方式1》快捷键win+R》输入cmd》

(2.2)Mysql数据库触发器运行jar包

数据库表userdo的设计

安装Mysql Udf sys_exec函数,用来调用外部程序、系统命令、shell脚本

##----查询MySQL数据库的版本
SELECT VERSION();
##----使用MySQL数据库mysql
USE mysql;
##----mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
flush privileges;
##----查询MySQL数据库的安装路径
select @@basedir;
##----查询MySQL数据库的插件目录路径
SHOW VARIABLES LIKE 'plugin_dir';
#----查询MySQL数据库的插件》字段library值为null,就表示为内置的plugin;否则为外部的plugin。
show plugins;
##----解决MySQL UDF sys_exec()不起作用
DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
INSTALL PLUGIN lib_mysqludf_sys_info SONAME 'lib_mysqludf_sys_64.dll';
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys_64.dll';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys_64.dll';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys_64.dll';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys_64.dll';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys_64.dll';
##查看创建的自定义函数sys_eval()
select * from mysql.func where name = 'sys_eval'; 
#使用系统命令
select sys_eval();
#查看 secure_file_priv 的值
show global variables like 'secure%';

已建表userdo的前提下,执行以下脚本来创建触发器

sql代码有问题XXXX----修改中

##----使用MySQL数据库jpa_norm_db_test
use jpa_norm_db_test; 
##----MySQL默认使用“;”作为分隔符,SQL语句遇到“;”就会提交。而我们的触发器中可能会有多个“;”符,为了防止触发器创建语句过早的提交,我们需要临时修改MySQL分隔符,创建完后,再将分隔符改回来。
DELIMITER $
##----删除前先判断触发器userdoTrigger是否存在
drop trigger if exists userdoTrigger$
##----创建表userdo 的 INSERT触发器;
#CREATE 触发器名字
CREATE TRIGGER userdoTrigger 
#对表userdo,进行的操作
AFTER INSERT  ON userdo 
#加了for each row表示是行级触发器,每次插入记录都会触发;如果不加,则是语句级触发器,只在执行insert语句的时候触发。
FOR EACH ROW   
#触发执行的SQL语句内容,一般以begin开头,end结尾;begin SQL代码段 end,相当于{SQL代码段}
BEGIN 
 #;标识单句sql的结束,跟批处理无关。对一些用处较多、易造成歧义的关键字,最好以;标志,比如with。
 #go标识一段Transact-SQL语句的结束,批处理|批量提交sql,系统处理完上一段功能,再去处理下一批。
 #declare ** 声明的是局部变量,局部变量的作用域是其被声明时所在批处理;set @** 声明的是全局变量。
 #声明并初始化,多个局部变量str1、cmdStr3
 declare str1,cmdStr3 varchar(255) DEFAULT null; 
 #将插入的表userdo|new(old,new都是代表当前操作的记录行,也可以理解成表名)的字段user_name的值,赋值给局部变量str1
 set str1=(select new.user_name from new);
 #声明全局变量@str2
 #将插入的表userdo|new(old,new都是代表当前操作的记录行,也可以理解成表名)的字段user_name的值,赋值给全局变量@str2
 set @str2=(select new.user_name from new);
 #将命令行字符串+str1,赋值给cmdStr3(cmd窗口的命令行,作用是启动|调用外部jar包程序clientToServer.jar)
 set cmdStr3='java -jar E:\tempJarFolder\clientToServer.jar '+str1; 
 #Mysql Udf sys_exec函数,调用外部程序、系统命令、shell脚本
--  exec sys_exec(cmdStr3); 
END$
DELIMITER ;

(2.3)SqlServer数据库触发器运行jar包

 

参考链接

java监听数据库某张表变化,当插入数据后将数据显示到页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值