SqlServer触发器调用java接口

时间:2019-01-15
本文章向大家介绍SqlServer触发器调用java接口,主要包括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触发器>
-- =============================================
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:	<调用消息推送接口>
-- =============================================
ALTER 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  ('标题','内容')