错误笔记:写项目时用PreparedStatement向数据库中插入数据报游标不足错误

在开发电信宽带运营支撑系统时遇到一个游标不足的错误,原因是PreparedStatement对象在for循环内部创建且未及时关闭。解决方案是在每次执行完SQL后关闭PreparedStatement,以此避免资源耗尽。
摘要由CSDN通过智能技术生成

今天在写一个电信宽带运营支撑系统时,报了一个游标不足的错误,一脸蒙,代码是这样:

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对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值