java - 如何使用变量更新列?

标签 java mysql sql-update

我有两个问题:

1)如何在 UPDATE 查询中调用变量,因为我想使用同一行来更新大量列。 我在 INSERT 和 SELECT 中做到了这一点,但它导致 UPDATE 错误 我在哪里使用的:

string x="term";
 try{

    Connection con = DriverManager.getConnection("jdbc:mysql://localhost/ourproject?useUnicode=true&characterEncoding=utf8&user=luffy&password=111111");
    Statement stmt=(Statement) con.createStatement();
    String select = "SELECT ('" + x  + "') FROM test WHERE doc=0"; 
    stmt.executeUpdate(select);
   }
   catch(Exception e)
   {
    e.printStackTrace();   
   }

2) 如果我可以调用一个变量,如何通过加 1 来更新它的值? 我尝试了这个并且有效:

try{

    Connection con = DriverManager.getConnection("jdbc:mysql://localhost/ourproject?useUnicode=true&characterEncoding=utf8&user=luffy&password=111111");
    Statement stmt=(Statement) con.createStatement();
    String update = "UPDATE test SET term=term+1 WHERE doc=0"; 
    PreparedStatement updateQuey =con.prepareStatement(update);
    updateQuery.executeUpdate(update);
   }
   catch(Exception e)
   {
    e.printStackTrace();   
   }

但是我需要调用 X ,因为我想对多个列使用同一行。 提前谢谢

最佳答案

您可以使用带有参数的准备好的语句。 here is the docu来自甲骨文关于它的信息。

在您的上下文中:

String update = "UPDATE test SET term = ? WHERE doc=0"; 
PreparedStatement updateQuey = con.prepareStatement(update);
updateQuey.setInt(1, x);
updateQuery.executeUpdate();

顺便说一句:我认为您不需要更新字符串作为 executeUpdate()

的参数

关于java - 如何使用变量更新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636717/

相关文章:

java - Singleton是否违规?

java - 将工作发送到需要初始化的工作池

php - MySql 取数据慢

php - SQLSTATE[HY000] [1698] 拒绝用户访问 'root' @'localhost'

mysql - 用于 View 创建的 FORM 子句中的 SELECT

SQL/DB2 - 同时检索值和更新/增量

mysql - 在 SQL 中更新表

postgresql - 更新时引用无效,那么,如何更新呢?

java - 如何将 JAR 文件捆绑到 Mac 应用程序包中

java - 查找直线上距离另一点最近的点