如何在Java中执行更新查询?
我不太喜欢数据库,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
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;
}
您正在查找
语句。执行(…)