Java 检测UPDATE语句中更改的SQL列

Java 检测UPDATE语句中更改的SQL列,java,sql,jdbc,prepared-statement,Java,Sql,Jdbc,Prepared Statement,我有以下Java代码: PreparedStatement statement = conn.prepareStatement(updateString); statement.execute(); 我知道在执行之后,执行语句.getUpdateCount()返回更新的行数。但是,有没有办法知道哪些栏目在哪里更新 问题是,代码本身总是传递整个列值集,即使其中一些值没有更改 我希望能够判断某个特定列(例如“名称”)是否由于底层准备的UPDATE语句而发生更改。 编辑:我知道可以对该列进行选择,获

我有以下Java代码:

PreparedStatement statement = conn.prepareStatement(updateString);
statement.execute();
我知道在执行之后,执行
语句.getUpdateCount()返回更新的行数。但是,有没有办法知道哪些栏目在哪里更新

问题是,代码本身总是传递整个列值集,即使其中一些值没有更改

我希望能够判断某个特定列(例如“名称”)是否由于底层准备的UPDATE语句而发生更改。


编辑:我知道可以对该列进行选择,获取当前值,并与传入的新值进行比较,以检测其是否会更改。但是,这意味着要再次访问数据库。这个问题是在调用该语句后,通过某种JDBC/SQL通信机制来确定是否可行。

如果只是批量更新每一列,而不管新值是否与旧值不同,然后,在更新之前,您可能必须以编程方式选择并检查每个列的值

因此,伪代码类似于:

select * from table where condition
execute
foreach row in result
  foreach column in row
    if (column != newColumn) document.write(column != newColumn);

PreparedStatement statement = conn.prepareStatement(updateString);
statement.execute();

如果您只是批量更新每一列,而不管新值是否与旧值不同,那么您可能必须在更新之前以编程方式选择并检查每一列值

因此,伪代码类似于:

select * from table where condition
execute
foreach row in result
  foreach column in row
    if (column != newColumn) document.write(column != newColumn);

PreparedStatement statement = conn.prepareStatement(updateString);
statement.execute();

尝试执行一个查询,例如:在UpdateQuery之后从表中选择nameColimn我没有要比较的上一个值。在对现有Java接口等产生连锁反应之前,我正在尝试看看是否有一个仅使用SQL的快速解决方案。如果没有,则是相同的?更新后,使用select Querym验证结果。我的目的是想知道是否有可能通过某种SQL机制确定哪些列发生了更改。我知道我以前可以进行查询,获取当前值,与新值进行比较,等等。。问题是这意味着对数据库的另一次访问,我正在尝试通过JDBC查看是否存在现有的编程接口,以检查给定列是否真的发生了更改。JDBC中没有这种情况。尝试在UpdateQuery之后执行查询ex:select nameColimn from table我没有要比较的上一个值。在对现有Java接口等产生连锁反应之前,我正在尝试看看是否有一个仅使用SQL的快速解决方案。如果没有,则是相同的?更新后,使用select Querym验证结果。我的目的是想知道是否有可能通过某种SQL机制确定哪些列发生了更改。我知道我以前可以进行查询,获取当前值,与新值进行比较,等等。。问题是,这意味着需要对数据库进行另一次访问,我正在尝试通过JDBC查看是否存在现有的编程接口,以检查给定列是否真的发生了更改。JDBC中没有这种情况。我的目的是想弄清楚是否有可能通过某种SQL机制确定哪些列发生了更改。我知道我以前可以进行查询,获取当前值,与新值进行比较,等等。。问题是,这意味着需要对数据库进行另一次访问,我试图通过JDBC查看是否存在现有的编程接口来检查给定列是否真的发生了更改。我的目的是想知道是否有可能通过某种SQL机制来确定哪些列发生了更改。我知道我以前可以进行查询,获取当前值,与新值进行比较,等等。。问题是,这意味着要对数据库进行另一次访问,我试图通过JDBC查看是否存在现有的编程接口,以检查给定列是否真的发生了更改。