当前位置: 技术问答>java相关
如何一次更新多条记录?
来源: 互联网 发布时间:2015-07-23
本文导语: Statement sqlStmt = sqlCon.createStatement(); ResultSet sqlRst; //the start of getting the action String action=request.getParameter("action"); if (action.equals("Approve")) { //创建一个SQL语句对象 Enumeration e...
Statement sqlStmt = sqlCon.createStatement();
ResultSet sqlRst;
//the start of getting the action
String action=request.getParameter("action");
if (action.equals("Approve")) {
//创建一个SQL语句对象
Enumeration enum = request.getParameterNames();
Vector vec = new Vector();
while (enum.hasMoreElements()) {
String str = (String)enum.nextElement();
int index = str.indexOf("app");
if (index != -1) {
String id = (String) request.getParameterValues(str)[0];
out.print(id);
sqlRst= sqlStmt.execute("update news set status_ind='A' where news_id="+Integer.parseInt(id));
}
}
sqlRst.close();
sqlStmt.close();
}
通过表单checkbox得到选中的几个id;根据这几个id同时更新oracle的记录;其中oracle表的news_id字段为number()类型;另外显示错误
Incompatible type for =. Can't convert boolean to java.sql.ResultSet.
Variable sqlRst may not have been initialized.
为什么?我该怎么做?
如果在此页面还要对另一个表做update操作;是否应该在创建 Statement和ResultSet对象?
ResultSet sqlRst;
//the start of getting the action
String action=request.getParameter("action");
if (action.equals("Approve")) {
//创建一个SQL语句对象
Enumeration enum = request.getParameterNames();
Vector vec = new Vector();
while (enum.hasMoreElements()) {
String str = (String)enum.nextElement();
int index = str.indexOf("app");
if (index != -1) {
String id = (String) request.getParameterValues(str)[0];
out.print(id);
sqlRst= sqlStmt.execute("update news set status_ind='A' where news_id="+Integer.parseInt(id));
}
}
sqlRst.close();
sqlStmt.close();
}
通过表单checkbox得到选中的几个id;根据这几个id同时更新oracle的记录;其中oracle表的news_id字段为number()类型;另外显示错误
Incompatible type for =. Can't convert boolean to java.sql.ResultSet.
Variable sqlRst may not have been initialized.
为什么?我该怎么做?
如果在此页面还要对另一个表做update操作;是否应该在创建 Statement和ResultSet对象?
|
你可以用循环得到id值并更新数据库。
sqlRst= sqlStmt.execute("update news set status_ind='A' where news_id="+Integer.parseInt(id));
应该改成sqlStmt.executeUpdate("update news set status_ind='A' where news_id="+Integer.parseInt(id));
更新操作没有返回值。
另外建议你使用事务来处理,如果操作多条记录,中途出现故障会造成垃圾数据,而使用事务来处理,中途出现故障可以使数据库回滚,不会出现垃圾数据。
sqlRst= sqlStmt.execute("update news set status_ind='A' where news_id="+Integer.parseInt(id));
应该改成sqlStmt.executeUpdate("update news set status_ind='A' where news_id="+Integer.parseInt(id));
更新操作没有返回值。
另外建议你使用事务来处理,如果操作多条记录,中途出现故障会造成垃圾数据,而使用事务来处理,中途出现故障可以使数据库回滚,不会出现垃圾数据。