在创建触发器时,在weblogic应用程序服务器中加载的java代码中设置信息

在创建触发器时,在weblogic应用程序服务器中加载的java代码中设置信息,weblogic,oracle11g,Weblogic,Oracle11g,我有一个oracle数据库表。当插入一行时,我想创建一个触发器。到目前为止,问题还可以,但在创建触发器之后,我想调用weblogic应用程序服务器代码(这意味着我想在其他weblogic应用程序服务器上加载的java类中设置此信息(新的数据库行) 感谢您的帮助。我花了几个小时在谷歌上寻找教程。然而,我似乎找不到任何牵手的东西。你能推荐一个教程、一组教程或例子来介绍这一点吗 类似Java的类是: import java.util.Random; public class Person {

我有一个oracle数据库表。当插入一行时,我想创建一个触发器。到目前为止,问题还可以,但在创建触发器之后,我想调用weblogic应用程序服务器代码(这意味着我想在其他weblogic应用程序服务器上加载的java类中设置此信息(新的数据库行) 感谢您的帮助。我花了几个小时在谷歌上寻找教程。然而,我似乎找不到任何牵手的东西。你能推荐一个教程、一组教程或例子来介绍这一点吗

类似Java的类是:

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服务可以满足我的要求吗?也许吧。这取决于你如何实现它。试试看。