[英]Obtain a table name used after executing JDBC Insert/Update/Delete
我們的應用程序執行用戶提供給我們的插入/更新/刪除SQL。 我們不知道SQL是什么樣子。 是否存在一種方法,可以在執行插入/更新/刪除操作后不從SQL本身解析表名的情況下獲取受影響的表?
注意:顯然,由於我們正在調用stmt.executeUpdate()
沒有ResultSet
/ ResultSetMetaData
可用於我們。
問題:執行插入/更新/刪除SQL后,是否存在確定受影響的表的方法?
它可能取決於您的特定數據庫系統,但是這里有一些想法:
如果可以獲得表的某一列,則可以遍歷所有列並存儲使用的表。
如果有連接對象,則檢查所有表:
DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
System.out.println(rs.getString(3));
}
如果您有權訪問SQL查詢,則可以掃描FROM
SQL關鍵字以識別表,和/或進一步掃描該語句,或者在該語句上使用SQL分析器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.