java+mysql如下
String sql = "select * from a";
ResultSet rs= statement.executeQuery(sql)第1个问题
现在我需要记录总数,找了半天没有看到方法,如何得到记录总数  (不会再来一次select count(×)吧)
第2个问题 我将使用批量更新的
    PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into test04 values (?,'中国')"); 
                         
while(startIndex < 620000) {  --如果知道记录总数,就把总数替换这个620000
如何写每500次做一次批量更新
for (int i = 0; i < 500; i++) { 
pst.setInt(1, i); // 把一个SQL命令加入命令列表 
pst.addBatch(); 

// 执行批量更新 
pst.executeBatch(); 
// 语句执行完毕,提交本事务 
con.commit();
               ----这里需要如何修改 

解决方案 »

  1.   

    最简单就是用元数据就是
    ResultSetMetaData md=rs.getMetaData();//rs是一个ResultSet
    int cols=md.getColumnCount();//得到字段个数你这样写数据会500个500个重复改成这样
    for(int i=1;i<620000;i++){
    pst.setInt(1, i);
    ps.addBatch();
    if(i%500==0){
    ps.executeBatch();
    }
    }
    con.commit()
      

  2.   

    实际上就是再来一次,一个分页查询,如果需要显示总页数的话,那每次执行两个查询,一个是 count,另一个是查询当页数据。
      

  3.   

    第一种:利用ResultSet的getRow方法来获得ResultSet的总行数Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    ResultSet rset = stmt.executeQuery("select * from yourTableName");
    rset.last();
    int rowCount = rset.getRow(); //获得ResultSet的总行数第二种:利用循环ResultSet的元素来获得ResultSet的总行数ResultSet rset = stmt.executeQuery("select * from yourTableName");
    int rowCount = 0;
    while(rset.next()) {
       rowCount++;
    }rowCount就是ResultSet的总行数。第三种:利用sql语句中的count函数获得ResultSet的总行数ResultSet rset = stmt.executeQuery("select count(*) totalCount from yourTableName");
    int rowCount = 0;
    if(rset.next()) {
       rowCount=rset .getInt("totalCount ");
    }PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into test04 values (?,'中国')"); 
    while(rs.next())
    pst.setInt(1, i); 
    // 把一个SQL命令加入命令列表 
    pst.addBatch(); 

    // 执行批量更新 
    if(ntemp%500)==0   || ntemp=rs.recordcount
    pst.executeBatch(); 
    // 语句执行完毕,提交本事务 
    con.commit();
      

  4.   

    rs.last(); 
    int rowCount = rs.getRow();
    rs.first();
    int nTemp=0;while(rs.next()) 
    ntemp=ntemp+1
    if(ntemp%500)==0  || ntemp= rowCount-1