jdbc 批处理插入数据库 每100条提交一次,有余数时如何解决

jdbc 批处理插入数据库 每100条提交一次,有余数时如何解决,第1张

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在系统卡时提交产生多条数据原因、银行网银防止重复提交的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10159571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存