Данные в Java Oracle 10 г Уведомление об изменении базы данных - PullRequest
0 голосов
/ 13 июля 2020

Я хотел бы знать, могу ли я отобразить измененную запись (данные) в базе данных Oracle 10G, используя Oracle уведомление об изменении базы данных?, Без выполнения второго запроса SQL в процедуре java: onDatabaseChangeNotification (DatabaseChangeEvent dce).

мой код:

 public class OracleDCN {

 static final String USERNAME = "system";
  static final String PASSWORD = "POP_P5";
 static String URL = "jdbc:oracle:thin:@192.168.23.128:1521:uep";

 public static void main(String[] args) {OracleDCN oracleDCN = new OracleDCN();
 try {
 oracleDCN.run();
 } catch (Exception ex) {
        ex.printStackTrace();
 }
 }

 private void run() throws Exception{
 OracleConnection conn = connect();
 System.out.println("succes1"); 
 Properties prop = new Properties();
 prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS, "true");  
 DatabaseChangeRegistration dcr = conn.registerDatabaseChangeNotification(prop);

 try{
 dcr.addListener(new DatabaseChangeListener() {

 public void onDatabaseChangeNotification(DatabaseChangeEvent dce) {
             
 System.out.println(dce.getTableChangeDescription()[0].getTableOperations().toString());
 }


           
 });

 Statement stmt = conn.createStatement();
 ((OracleStatement) stmt).setDatabaseChangeRegistration(dcr);
 ResultSet rs = stmt.executeQuery("SELECT * FROM CAF.tab");
     
 while (rs.next()) {
 System.out.println( rs.getString(1)+" " +rs.getString(2)+" " +rs.getString(3)); 
            
 }
 rs.close();
 stmt.close();
 }catch(SQLException ex){
 if (conn != null)
 {
 conn.unregisterDatabaseChangeNotification(dcr);
 conn.close();
 }
 throw ex;
 }
 }

 OracleConnection connect() throws SQLException {
 OracleDriver dr = new OracleDriver();
 Properties prop = new Properties();
 prop.setProperty("user", OracleDCN.USERNAME);
 prop.setProperty("password", OracleDCN.PASSWORD);
 return (OracleConnection) dr.connect(OracleDCN.URL, prop);
 }

 }    

Мне сложно отображать изменение данных с событием dcn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...