JAVA语言(Mysql触发器)

Mysql触发器监听A库中某一张表的动态变化,通过调用jar包的方式,调用另一个项目服务,使B库中的数据改变;或是直接将数据返回给前端。
注:(1)多数据源配置
	(2)java在后台建立一个websocket,页面与此socket建立连接,
    (3)写一个jar程序,当运行时与socket建立连接,并将参数发送到此socket
    (4)数据库建立insert、update、delete触发器,当数据改变时调用外部jar程序

多数据源配置:https://blog.csdn.net/w57685321/article/details/106823660/

触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。

mysql触发器trigger 实例详解 :https://www.cnblogs.com/phpper/p/7587031.html

BEFORE和AFTER参数指定了触发执行的时间,在事件之前或是之后
FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器

#创建有多个执行语句的触发器
CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
    执行语句列表
END

1.创建表demo表结构如下图
在这里插入图片描述
2.创建触发器

drop TRIGGER insertTrigger; 				-- 删除触发器

CREATE TRIGGER insertTrigger after insert 	-- insertTrigger 触发器的名称
 ON demo FOR EACH row    					-- 该触发器是在demo表改变的时候发生				
begin
DECLARE redata INT;    						 -- 定义一个变量接收Select sys_exec...语句执行完成后的结果
    Select sys_exec('java -jar D:\\logs\\sql-trigger-1.0.jar "http://localhost:8080/project/test" "demo" "insert"') INTO redata; 
end

-- 要调用的外部服务打成jar:sql-trigger-1.0.jar
-- jar包存放的地址:D:\\logs\\jar包全名称
-- 需要调用另一个项目服务中的方法:http://localhost:8080/project/test
-- 传递的参数:demo、insert

jar包程序,创建maven项目,

package com.cctegitc;
import com.cctegitc.util.HttpUtil;
/**
 * @Description:启动main方法
 * @Author: yrc
 * @Date: 2022/3/29 13:52
 * @Param: [args]
 * @Return: void 
 * @Throws:    
 */
public class Main {
   
    public static void main(String[] args) {
   
        if (args != null && args.length >= 3) {
   
            HttpUtil.request(args[0], args[1], args[2]);
        }
    }
}
//---------------------------------------------------------------------------------------------------
package com.cctegitc.util;
import java.io.IOException;

import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
/**
 * @Description:触发器调用后台请求
 * @Author: yrc
 * @Date: 2022/3/29 13:53
 * @Param: 
 * @Return:  
 * @Throws:    
 */
public class HttpUtil {
   
    public static void request(String url, String table, String action) {
   
        // httpclient客户端,类似于一个浏览器,可以由这个客户端执行http请求
        CloseableHttpClient httpClient = HttpClients.createDefault();
        // 请求
        HttpGet httpGet = new HttpGet(url 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dim_boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值