如何在Java中执行更新查询?

如何在Java中执行更新查询?,java,database,oracle,jakarta-ee,jdbc,Java,Database,Oracle,Jakarta Ee,Jdbc,我不太喜欢数据库,Java应用程序中有以下问题,需要执行一个非常简单的查询来更新数据库表上的字段 因此,原始查询是这样的: UPDATE coda_tx c SET c.FK_STATO = 2 WHERE c.PK_CODA = 62816; 因此,我实现了以下Java方法来实现前面的查询,这一个: public void updateStatus(int pkCoda, int newStatus) { String sql; StringBuffer sb = ne

我不太喜欢数据库,Java应用程序中有以下问题,需要执行一个非常简单的查询来更新数据库表上的字段

因此,原始查询是这样的:

UPDATE coda_tx c SET c.FK_STATO = 2 WHERE c.PK_CODA = 62816; 
因此,我实现了以下Java方法来实现前面的查询,这一个:

public void updateStatus(int pkCoda, int newStatus) {

    String sql;

    StringBuffer sb = new StringBuffer();

    sb.append("UPDATE coda_tx c SET c.FK_STATO = ");
    sb.append(newStatus);
    sb.append(" WHERE c.PK_CODA = ");
    sb.append(pkCoda);

    sql = sb.toString();


    try {
        statment = connection.createStatement();
        ResultSet rs = statment.executeQuery(sql);
    } catch (SQLException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
}
statment = connection.createStatement();
ResultSet rs = statment.executeQuery(sql);
我唯一的疑问是关于执行查询的部分,这一部分:

public void updateStatus(int pkCoda, int newStatus) {

    String sql;

    StringBuffer sb = new StringBuffer();

    sb.append("UPDATE coda_tx c SET c.FK_STATO = ");
    sb.append(newStatus);
    sb.append(" WHERE c.PK_CODA = ");
    sb.append(pkCoda);

    sql = sb.toString();


    try {
        statment = connection.createStatement();
        ResultSet rs = statment.executeQuery(sql);
    } catch (SQLException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
}
statment = connection.createStatement();
ResultSet rs = statment.executeQuery(sql);
我认为这是错误的,因为实际上存在ResultSet,它是一个通过SELECT操作检索行的对象。在这种情况下,我正在更新特定行的字段,而不是检索将主题放入ResultSet对象中的行


那么,我该如何正确处理这种情况呢?如何执行查询?

以下是您可以执行查询的方法:

// updateCount contains the number of updated rows
int updateCount = statment.executeUpdate(sql);

您正在查找
语句。executeUpdate()
,它将返回受更新影响的行数

int executeUpdate(字符串sql)抛出SQLException

执行给定的SQL语句,该语句可以是INSERT、UPDATE或DELETE语句,也可以是不返回任何内容的SQL语句,例如SQL DDL语句


参考:

如果您的方法接收到两个变量,例如fkStato和pkCoda,它们包含您想要的值,您可以进行简单的查询:

int fkStato=2;
int pkCoda=62816;
try
  {

    // create our java preparedstatement using a sql update query
    PreparedStatement ps = conn.prepareStatement(
      "UPDATE coda_tx c SET c.FK_STATO = ? WHERE c.PK_CODA = ?;");

    // set the preparedstatement parameters
    ps.setInt(1,fkStato);
    ps.setInt(2,pkCoda);

    // call executeUpdate to execute our sql update statement and returns number of rows affected
   int updateCount = ps.executeUpdate();
    ps.close();
  }
  catch (SQLException se)
  {
    // log the exception
    throw se;
  }

您正在查找
语句。执行(…)