resultSet是只读的,如何将它变成可写的?

干饭人之路 2005-12-31 10:20:08
这是代码,我想在通过它更新表中的信息,但是resultSet是只读的,如何将它变成可写的?
public static void main(String[] args) throws ClassNotFoundException, SQLException{
DbConnection c=new DbConnection("192.168.253.83","rep","repyx","123456");
Connection Con=c.GetOracleConn();
Statement stmt=Con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

ResultSet rs=stmt.executeQuery("select * from wfq_sub_local_net2");
ResultSetMetaData md=rs.getMetaData();
if(rs.getConcurrency()==ResultSet.CONCUR_UPDATABLE)
System.out.println("UPDATATABLE");
else
System.out.println("READ_ONLY");
while (rs.next()) {
rs.updateString("remarks","123");
rs.updateRow();
}
}
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
干饭人之路 2006-01-04
  • 打赏
  • 举报
回复
仍然提示:对只读结果集的无效操作: updateString,怎么回事?
yuzl32 2006-01-01
  • 打赏
  • 举报
回复
import java.sql.*;

public class InsertRows {
public static void main(String args[]) {
String url = "jdbc:mySubprotocol:myDataSource";
Connection con;
Statement stmt;
try {
Class.forName("myDriver.ClassName");
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
con = DriverManager.getConnection(url, "myLogin", "myPassword");

// 使之可读写 ..
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet uprs = stmt.executeQuery("SELECT * FROM COFFEES");
uprs.moveToInsertRow();
uprs.updateString("COF_NAME", "Kona");
uprs.updateInt("SUP_ID", 150);
uprs.updateFloat("PRICE", 10.99f);
uprs.updateInt("SALES", 0);
uprs.updateInt("TOTAL", 0);
uprs.insertRow();
uprs.updateString("COF_NAME", "Kona_Decaf");
uprs.updateInt("SUP_ID", 150);
uprs.updateFloat("PRICE", 11.99f);
uprs.updateInt("SALES", 0);
uprs.updateInt("TOTAL", 0);
uprs.insertRow();
uprs.beforeFirst();
System.out.println("Table COFFEES after insertion:");
while (uprs.next()) {
String name = uprs.getString("COF_NAME");
int id = uprs.getInt("SUP_ID");
float price = uprs.getFloat("PRICE");
int sales = uprs.getInt("SALES");
int total = uprs.getInt("TOTAL");
System.out.print(name + " " + id + " " + price);
System.out.println(" " + sales + " " + total);
}

uprs.close();
stmt.close();
con.close();

} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
}
干饭人之路 2006-01-01
  • 打赏
  • 举报
回复
我是问"resultSet是只读的,如何将它变成可写的?"
xiongbing528 2005-12-31
  • 打赏
  • 举报
回复
ResultSet rs=sql.executeQuery(sql);
rs.absolute(3);
rs.deleteRow();
..................。...................delete
rs.moveToInsertRow();
rs.updateString(1,"xx");
rs.insertRow();
......................................insert
rs.last();
rs.updateString("name","a");
rs.cancelRowUpdates();
rs.updateString("name","b");
rs.updateRow();

....................................update..


.........增加。删除。修改全来了。。还有那里不明白的。。

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧