SqlServer触发器调用java接口

1.创建Insert触发器

USE [db1]
GO
/****** Object:  Trigger [dbo].[tr_sm_msg]    Script Date: 2019/1/15 19:17:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<lingdian>
-- Create date: <2019-01-15>
-- Description:	<Insert触发器>
-- =============================================
DROP TRIGGER IF EXISTS `tr_sm_msg`;
CREATE TRIGGER [dbo].[tr_sm_msg] 

ON [dbo].[sm_msg] 

AFTER insert

AS 
BEGIN
	declare @msgId int

	set @msgId = (select id from inserted)

	exec proc_useJPushAPI @msgId --调用存储过程并传参 如果传入的参数未变则不会触发

	SET NOCOUNT ON;
END

2.创建存储过程 

USE [db1]
GO
/****** Object:  StoredProcedure [dbo].[proc_useJPushAPI]    Script Date: 2019/1/15 17:59:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<lingdian>
-- Create date: <2019-01-15>
-- Description:	<调用消息推送接口>
-- =============================================
DROP PROCEDURE IF EXISTS `proc_useJPushAPI`;
CREATE PROCEDURE [dbo].[proc_useJPushAPI]
	@msgId varchar(100)		--sm_msg表的id字段
AS
BEGIN

	declare @url varchar(4000)	--接口路由
	declare @object int			--OLE对象实例
	declare @responseText varchar(4000) --文本

	set @url = 'http://127.0.0.1:8001/JPush/send/' + @msgId
	
	print @url

	exec sp_OACreate'MSXML2.XMLHTTP',@object out
	exec sp_OAMethod @object,'open',null,'get',@url,'false'
	exec sp_OAMethod @object,'send'
	exec sp_OAMethod @object,'responseText',@responseText output

	print @responseText

	exec sp_OADestroy @object

	SET NOCOUNT ON;

END

3.在表中插入数据时触发器会调用接口

insert into sm_msg (msgTitle,msgContent) values  ('标题','内容')

备注:可能出现错误

SQL Server 阻止了对组件“Ole Automation Procedures”的 过程“sys.sp_OACreate”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用“Ole Automation Procedures”。有关启用“Ole Automation Procedures”的详细信息,请搜索 SQL Server 联机丛书中的“Ole Automation Procedures”。语句已终止。

请访问下面地址,可解决:

https://blog.csdn.net/dling8/article/details/86497929

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值