今天在写一个电信宽带运营支撑系统时,报了一个游标不足的错误,一脸蒙,代码是这样:
public void saveToDB(Collection<BIDR> arg0) throws Exception {
Connection conn = ConnectionFaction.getConnection();
//conn.setAutoCommit(false);
//int num=0;
for(BIDR b:arg0) {
//num++;
int i = new Date(b.getLogin_date().getTime()).getDate();
System.out.println(i);
String sql="insert into t_detail_"+i+" values(?,?,?,?,?,?)";
PreparedStatement prs = conn.prepareStatement(sql);
prs.setString(1, b.getAAA_login_name());
prs.setString(2, b.getLogin_ip());
prs.setTimestamp(3, b.getLogin_date());
prs.setTimestamp(4, b.getLogout_date());
prs.setString(5, b.getNAS_ip());
prs.setInt(6, b.getTime_deration());
prs.execute();
}
//conn.commit();
}
很简单的使用jdbc向数据库中插入数据的语句,为什么会报游标不足的错误呢?
想了好久,发现以前写preparedStatement时都是在循环外建的对象,这次是在for循环内,因为特殊需要,那么可能是preparedStatement对