这是代码,我想在通过它更新表中的信息,但是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("res","123");
 rs.updateRow();
 }
}

解决方案 »

  1.   

    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..
    .........增加。删除。修改全来了。。还有那里不明白的。。
      

  2.   

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

  3.   

    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());
        }
    }
      

  4.   

    仍然提示:对只读结果集的无效操作: updateString,怎么回事?