/*  * Created on 2004-10-13  */ 
/**  * @author liuwei  */ 
import java.sql.*; 
public class TestResultSet {  /**   *更新操作   *    * @param s   * @throws SQLException   */  public static void updateRow(Statement s) throws SQLException {   ResultSet rs = s.executeQuery("Select * from test");   rs.next();   rs.updateString(1, "222");   rs.updateString(2, "LiuWei");   rs.updateObject(3, new Integer(3));   rs.updateRow();  } 
 /**   * 插入操作   *    * @param s   * @throws SQLException   */  public static void insertRow(Statement s) throws SQLException {   //读取空的结果集,从中取得表的结构   ResultSet rs = s.executeQuery("Select * from test where 1<>1");   for (int i = 0; i < 1000; i++) {    rs.moveToInsertRow();    rs.updateObject(1, new String("333"));    rs.updateObject(2, new String("Leo"));    rs.updateObject(3, new Integer(3));        rs.insertRow();   }  } 
 public static void main(String[] args) {   Connection con = null;   try {    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");    con = DriverManager      .getConnection(        "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs",        "sa", "");   //直接调用execute的操作    long begin = System.currentTimeMillis();    Statement s = con.createStatement();    for (int i = 0; i < 1000; i++)     s.execute("insert into test values('333','Leo', 3)");    long end = System.currentTimeMillis();    System.out.println(begin - end);    s.execute("delete from test"); 
   //用ResultSet进行操作的性能测试    Statement ss = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,      ResultSet.CONCUR_UPDATABLE);    begin = System.currentTimeMillis();    insertRow(ss);    end = System.currentTimeMillis();    System.out.println(begin - end);    s.execute("delete from test");   //用批处理的性能    String sql = "insert into test values('333','Leo', 3)";    begin = System.currentTimeMillis();    Statement s3 = con.createStatement();    for (int i = 0; i < 1000; i++)     s3.addBatch(sql);    s3.executeBatch();    end = System.currentTimeMillis();    System.out.println(begin - end);    s.execute("delete from test"); 
   /*     * while (rs.next()){ System.out.println(rs.getString(2)); }     */    con.close();   } catch (Exception e) {    e.printStackTrace();   }  } 
} 从结果中可以看出,这种方式的性能在不考虑读取表结构的操作时,还可接受(与直接insert性能查不多),但这种方式免去了用大量代码去拼Sql的工作。  
 
  |