在创建触发器时,在weblogic应用程序服务器中加载的java代码中设置信息
我有一个oracle数据库表。当插入一行时,我想创建一个触发器。到目前为止,问题还可以,但在创建触发器之后,我想调用weblogic应用程序服务器代码(这意味着我想在其他weblogic应用程序服务器上加载的java类中设置此信息(新的数据库行) 感谢您的帮助。我花了几个小时在谷歌上寻找教程。然而,我似乎找不到任何牵手的东西。你能推荐一个教程、一组教程或例子来介绍这一点吗 类似Java的类是:在创建触发器时,在weblogic应用程序服务器中加载的java代码中设置信息,weblogic,oracle11g,Weblogic,Oracle11g,我有一个oracle数据库表。当插入一行时,我想创建一个触发器。到目前为止,问题还可以,但在创建触发器之后,我想调用weblogic应用程序服务器代码(这意味着我想在其他weblogic应用程序服务器上加载的java类中设置此信息(新的数据库行) 感谢您的帮助。我花了几个小时在谷歌上寻找教程。然而,我似乎找不到任何牵手的东西。你能推荐一个教程、一组教程或例子来介绍这一点吗 类似Java的类是: import java.util.Random; public class Person {
import java.util.Random;
public class Person
{
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
其中,id
和name
是db表的列。我希望weblogic应用程序服务器上有一个java对象,保存插入db中的行的新值
编辑: 谢谢你的回复 要定义的数据:-安装oracle 11g的计算机,其他计算机上安装weblogic application server。weblogic server上有静态hashmap hm,由weblogic server上的其他应用程序读取。此hashmap的值是Person类的对象(如上所述) 现在我的要求是,每当在数据库表中添加新行时,它就会在person类中设置此行的值(通过触发oracle触发器),并将该对象存储在hashmap值字段中(将db表的一列视为hashmap键)
对于eg,id和name是db的列。每当在该表中插入新行(id=1,name=xyz)时,将该值作为 {hm.put(“1”,person类的对象)}
名称字段将在person类的对象中设置 可能有几种方法可以满足您的需求,但让Oracle返回java对象可能是其中最复杂的一种。最简单的解决方案是让weblogic应用程序调用将记录插入数据库,然后创建Person类对象并将其放入hashmap。如果应用程序不控制id(例如,id是从数据库上的序列创建的,您可以通过函数插入记录,并让函数将id返回给web应用程序:
CREATE SEQUENCE person_id_seq START WITH 1;
CREATE FUNCTION insert_person ( p_name IN VARCHAR2 )
RETURN NUMBER
IS
retval NUMBER := -1;
BEGIN
INSERT INTO person ( id, name )
VALUES ( person_id_seq.NEXTVAL, p_name )
RETURNING id INTO retval;
RETURN retval;
END insert_person;
此外,我不确定您是否完全了解Oracle触发器的作用。触发器通常用于在插入/更新/删除之前进行逻辑/数据验证,或执行某些插入/更新/删除后操作(例如,在所做更改的审核/历史表中创建记录,更新其他记录).虽然Oracle确实支持用Java编写的触发器,但我从未使用过它们,也不确定触发器将如何与您的weblogic应用程序通信
如果必须将java对象从Oracle返回到weblogic应用程序,则可以声明Oracle对象类型并让插入函数/过程返回该类型,也可以返回带有数据元素的ref游标。根据返回Oracle对象类型的方式,您可能需要定义一个java类,Oracle OJDBC将返回该类驱动程序可以映射pl/sql对象
对SQLData或ORAData进行web搜索。R.a.Menon的Oracle JDBC编程专家是一本很好的参考书:我不太确定你打算做什么。你说的“创建触发器”是什么意思?您是指插入表行后将执行某些操作的Oracle触发器吗?您希望weblogic应用程序将行插入Oracle数据库,然后将java对象中的行信息发送到第二个weblogic应用程序?是否正确?新数据行将如何到达第二个weblogic应用程序?是否希望e oracle数据库将其推送到WL应用程序,或WL应用程序将查询数据库以获取新记录?请参阅此问题的编辑谢谢您的回答…待定义的数据:-安装oracle 11g的计算机,其他计算机上安装了weblogic application server。weblogic server上有静态hashmap hmh由weblogic服务器上的其他应用程序读取。此hashmap的值是Person类的对象(如上所述)。现在,我的要求是每当在数据库表中添加新行时,它就会在Person类中设置此行的值(通过触发oracle触发器),并将此对象存储在hashmap值字段中(将db表的一列视为hashmap键)。例如id和name是db的列。每当在该表中插入新行(id=1,name=xyz)时,将该值作为{hm.put(“1”,person类的对象)}放入hashmap hm中姓名字段将设置在person类的对象中。我在网上看到一个链接:你能告诉我,web服务可以满足我的要求吗?也许吧。这取决于你如何实现它。试试看。