把
if(i%100==0)//每100条提交一次
{
psexecuteBatch();
concommit();
psclearBatch();
}
改成
if(i%100==0||i==(listsize()-1)){
psexecuteBatch();
concommit();
psclearBatch();
}
el-button在系统卡时提交产生多条数据原因:
1前端页面或浏览器出现了异常,导致el-button的提交事件被多次触发。
2后端接口出现了异常或错误,导致前端页面在提交数据时无法正常接收到服务器返回的响应结果,从而导致多次提交数据。
3前端代码中没有正确处理异步请求的情况,导致在数据请求还未完成时,用户就可以重复提交数据。
4数据库或服务器出现了异常,导致数据无法正常保存或更新,从而导致多次提交数据。
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
银行网银防止重复提交的方法是:
在网银的数据库中新建一个表,就一个字段(主键),用于储存流水号,在发银行核心系统之前,将要转帐的这笔流水insert到此表中(此时第二个柜员就无法再次录入这笔交易了,利用数据库的锁,防止了重复提交),当核心返回数据后判断:
当返回的数据是一个连接异常时,删去数据库中这笔流水;
当返回的数据是一个返回超时异常时,不做任何处理;
当返回的数据是核心交易异常时,删去数据库中这笔流水;
当返回的数据是交易成功时,不做处理。
只要不是逐项提交,效率都可以。但你的数据量很大,如果导入的数据不在乎排序,那么就不必要在意了,否则如果你将来业务代码里可能要通过主键排序,那这时要加事务,虽然oracle并发控制不会主键冲突,但连续的主键就不能保证了。如果只是找个时间导入数据的话,直接把所有其他用户都断掉,然后1000条更新一次就好。如果有blob,clob这种字段,还是100-200一次比较好
我给你个我今天编写的程序吧
你看了自己照着改就可以了<%id=request("id")
xztype=trim(request("xztype"))
if id<>"" and xztype<>"" then
id=int(id)
%>
<table width="100%" border="1" align="center" bordercolor="cccccc">
<form action="bxfl2saveasp" method="post">
<tr align="center" bgcolor="#CCCCCC">
<td height="27">性别</td>
<td>年龄</td>
<td>保险金额</td>
<td>缴费期限<input type="hidden" name="idd" value="<%=id%>">
<input type="hidden" name="xztype" value="<%=xztype%>"></td><td>保费</td>
</tr>
<%sql="select from bftable where xztype='"&xztype&"' and idd="&id
rsopen sql,conn,1,3
if rsrecordcount=0 then
rsclose
responsewrite"<tr><td colspan=5><a href=bxflasp>请先添加保费后再修改保费</a></td></tr>"
responseend
else
soon=rsrecordcount
do while not rseof
i=i+1
if i=2 then
i=0
end if
if i=1 then
xx=""
end if
if i=0 then
xx="bgcolor=#cccccc"
end if
%>
<tr align="center" <%=xx%> >
<td height="27"><input name=id type="hidden" value="<%=rs("id")%>"><select name="sex" size="1" id="sex">
<option value="男" <%if trim(rs("sex"))="男" then
responsewrite " selected "
end if%>>男</option>
<option value="女" <%if trim(rs("sex"))="女" then
responsewrite " selected "
end if%>>女</option>
</select>
</td>
<td><input name="age" id="age" size="15" value="<%=trim(rs("age"))%>"></td>
<td><input name="bxmoney" id="bxmoney" size="15" value="<%=trim(rs("bxmoney"))%>"></td>
<td><input name="jfterm" id="jfterm" size="15" value="<%=trim(rs("jfterm"))%>"></td>
<td><input name="bf" size="15" value="<%=trim(rs("bf"))%>"></td>
</tr>
<%rsmovenext
loop
soon=i+1
if (soon mod 2)=0 then
xx="bgcolor=#cccccc"
else
xx=""
end if
end if
responsewrite"<tr "&xx&"><td colspan=5 height=27 align=center><input type=submit name=Submit value=确定 /></td></tr>"
%></form>
</table>
<%else
end if%>
上面是显示多条记录
下面是修改多条记录
<%
id=request("id")
idd=request("idd")
xztype=request("xztype")
sex=request("sex")
age=request("age")
bxmoney=request("bxmoney")
jfterm=request("jfterm")
bf=request("bf")
sex=split(sex,",")
for i = 0 to ubound(sex)
sex(i)=sex(i)
next
age=split(age,",")
for i = 0 to ubound(age)
age(i)=age(i)
next
bxmoney=split(bxmoney,",")
for i = 0 to ubound(bxmoney)
bxmoney(i)=bxmoney(i)
next
jfterm=split(jfterm,",")
for i = 0 to ubound(jfterm)
jfterm(i)=jfterm(i)
next
bf=split(bf,",")
for i = 0 to ubound(bf)
bf(i)=bf(i)
next
id=split(id,",")
for i = 0 to ubound(id)
id(i)=id(i)
next
for i=0 to ubound(bf)
if sex(i)<>"" or age(i)<>"" or bxmoney(i)<>"" or jfterm(i)<>"" or bf(i)<>"" then
sql="select from bftable where id="&trim(id(i))
rsopen sql,conn,1,3
rs("sex")=trim(sex(i))
rs("age")=trim(age(i))
rs("bxmoney")=trim(bxmoney(i))
rs("jfterm")=trim(jfterm(i))
rs("bf")=trim(bf(i))
rsupdate
rsclose
end if
next
%>
以上就是关于jdbc 批处理插入数据库 每100条提交一次,有余数时如何解决全部的内容,包括:jdbc 批处理插入数据库 每100条提交一次,有余数时如何解决、el-button在系统卡时提交产生多条数据原因、银行网银防止重复提交的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)