用于使用单独的选择和更新进行更新

时间:2018-12-17 17:03:44

标签: java sql jdbc

我遇到有关for update查询的问题。我有以下两种方法:

第一个选择行并返回包含主键和值的映射。

public Map<String,String> method1() throws SQLException  {
    String sql = "select * from table where col1='someValue' for update";
    // ... do something and construct map, so map contains {colName, value}
    return map;
}

第二种方法从第一种方法获取地图,然后根据地图的值更新行。

public boolean method2(String pk){
    String sql = "update tableName set value = 1234 where primaryKey = pk";
    // ... execute query and return boolean of if row affected
    return booleanValue;
}

在第三种方法中,将执行方法1和2。

public void method3(){
    // execute method1, get value from map
    method1();
    // some other operations need to be done here...
    // pass value to method2 and execute
    method(value);
}

我做了一些研究,发现有些帖子说使用for update不应打开交易太长时间。

我的问题是:我应该分别进行select..for update和实际更新吗?

0 个答案:

没有答案