oracle java dcn_DCN监听获取变动的表名为三个问号

此博客展示了使用Java实现Oracle数据库更改通知的代码。通过OracleDataSource建立连接,设置相关属性,注册数据库更改通知,添加监听器,执行查询语句等操作,最终开启数据库更改通知功能。

package com.dtqy.dcn.test;

import java.sql.SQLException;

import java.util.Properties;

import oracle.jdbc.OracleStatement;

import oracle.jdbc.dcn.DatabaseChangeListener;

import oracle.jdbc.dcn.DatabaseChangeRegistration;

import oracle.jdbc.driver.OracleConnection;

import oracle.jdbc.pool.OracleDataSource;

public class Test {

public static void main(String[] args) throws SQLException {

OracleDataSource dataSource = new OracleDataSource();

dataSource.setUser("jsxl_admin");

dataSource.setPassword("root");

dataSource.setURL("jdbc:oracle:thin:@124.130.149.119:1521:orcl");

final OracleConnection conn = (OracleConnection) dataSource

.getConnection();

Properties prop = new Properties();

prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS, "true");// 要取得更改记录的rowid

// 设置超时,这里是1个小时,届时数据库和驱动器的资源自动释放。如果为0或不设置,则用不过期,直到程序停止监听,当数据库发送更新通知时,因为没有监听端口,数据库随后释放资源

prop.setProperty(OracleConnection.NTF_TIMEOUT, "0");

DatabaseChangeRegistration databaseChangeRegistration = conn

.registerDatabaseChangeNotification(prop);

DatabaseChangeListener databaseChangeListener = new DataBaseChangeListenerTest();

databaseChangeRegistration.addListener(databaseChangeListener);

OracleStatement statement = (OracleStatement) conn.createStatement();

statement.setDatabaseChangeRegistration(databaseChangeRegistration);

statement.executeQuery("select * from DTQY_JXKH_CJ_RY t where 1=2");

statement.executeQuery("select * from DTQY_JXKH_CL where 1=2");

statement.close();

conn.close();

System.err.println("数据库更改通知开启:");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值