代码如下:
public boolean insertData(Keycab cab){
boolean result =false;
Connection conn =new DBConnection().getConnection();
PreparedStatement stmt = null;
String sql="insert into kms_cabinfo values(?,?,?,?,?,?,?)";
try {
stmt = conn.prepareStatement(sql);
//conn.setAutoCommit(false);
stmt.setInt(1,cab.getCabid());
stmt.setInt(2,cab.getMaxofkey());
stmt.setString(3, cab.getCabstate());
stmt.setString(4, cab.getBstate());
stmt.setString(5, cab.getSstate());
stmt.setInt(6, cab.getRows());
stmt.setInt(7, cab.getCols());
stmt.execute();
    result= true;
        //conn.commit();
  }catch (SQLException e1) {
// TODO Auto-generated catch block
//e1.printStackTrace();
  result= false;
}
return result;
这段是我插入oracle的代码,外部调用是,利用循环,遍历List,当然list里存的是Keycab对象。但是,为什么每次都只能输入循环的最后一句?谁可以帮我改下代码啊?谢谢了

解决方案 »

  1.   

    我想你有必要把循环代码也贴出来看一下另外调用
    int insertResult = stmt.executeUpdate(); 会更好一点insertResult == 1 则正确插入一行数据, 否则表示插入失败
      

  2.   

    int count=0;
    int num =Integer.parseInt(request.getParameter("num").toString());
    String[] resultArray=new String[7*num];
    String str=request.getParameter("str");
    resultArray = new StringOperate().SplitValue(str.substring(1),num);
    List list=new CabDAO().setCab(resultArray, num);
        for(int i=0;i<num;i++){
        Keycab cab=(Keycab)list.get(i);
    boolean result=new DBbaseoperate().insertCab(cab);
    if(result==true)
    count++;
    }
    if(count==num){
    forward(Constant.ADDPERSON_PAGE);
    }else{
    forward(Constant.ADDCAB_PAGE);
    }我外部循环的函数
      

  3.   

    我输入两条信息,就是num=2,这个时候,一条输入成功,一条失败!然后count值小于num,而没有实现跳转,谁帮我看看啊,谢谢了