MySQL数据库查询和更新

时间:2012-02-01 14:55:18

标签: java mysql sql

我想知道是否有人知道更好的方法来执行以下操作:

我需要查询数据库并返回一个值(在本例中为int),然后使用此值计算新值并使用此新值更新数据库。

我当前的方法是使用一种方法从数据库中获取当前的int值,将此值传递给另一个方法来执行计算,然后将新值传递给第三个方法来更新数据库。

所以,问题(?)就是它从数据库中获取初始值然后更新它时从池中打开一个新连接。显然它会在方法结束时关闭连接但是有一些更简单/更好的方法吗?看起来有点乱。

4 个答案:

答案 0 :(得分:0)

您不必为每个查询打开新连接。只需在请求开始时打开一个连接,保存对可在所有方法中使用的全局变量的引用,并在请求结束时将其关闭。

答案 1 :(得分:0)

试试这个:

 SELECT fieldValue FROM table_name FOR UPDATE;
 UPDATE table_name SET fieldToUpdate = fieldValue + 1;

请参阅UPDATE Syntax

答案 2 :(得分:0)

如果你可以在SQL中进行计算:

UPDATE TableToUpdate
SET ColumnB = 
    Calculations( ( SELECT ColumnA
                    FROM TableToSelect
                    WHERE (conditions for selecting)
                  )
                )
WHERE (conditions for updating)

答案 3 :(得分:0)

根据您的要求,您可以利用多表更新:

UPDATE TableToUpdate U JOIN TableToSelect S ON ( -- join condition for selection value to process )
SET U.ColumnB = Calculations( S.ColumnC )
WHERE U.ColumnC = -- whatever selection condition