同样的代码,插入数据库条数不一致

...PreparedStatementpst=(PreparedStatement)conn.prepareStatement("insertintoTBLvalues... ...
PreparedStatement pst = (PreparedStatement) conn.prepareStatement(
"insert into TBL values (?, 'ABC')");
for (int j = 0; j < 10; j++) {
String prefix = String.valueOf((char) (65 + j));
for (int i = 0; i < 10000; i++) {
pst.setString(1, prefix + String.valueOf(i));
pst.addBatch();
}
}
pst.executeBatch();
conn.commit();
...
以上代码用于向数据库表插入10w条数据,奇怪的是我在一台机器上可以执行10w条入库,但在另外一台机器上,copy了同样的代码,一次只能插入34464条,很奇怪,但我看两个for循环后确实是产生了10w条数据,但数据库中最后只有34464条,难道哪里出问题了?谢谢指点!
但奇怪的是我两台机器同时起同样的代码,插入的数据量就是不一样。

是对同一个数据库的同一张表的操作,一台是本地机,一台是VM,奇怪的是每次VM只插入34464条数据,两边代码一样,也没有提示错误,看到VM中也产生100000条数据
展开
 我来答
Knight_Wjx
2010-08-12 · TA获得超过864个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:87.6万
展开全部
2台机器硬件配置是否一样?性能较弱的有可能没来得及响应,程序以为插入失败则终止。

两处数据库设置是否一样?数据文件大小,缓冲区大小等。过小的分页会造成响应时间滞后,程序认为插入操作失败而终止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ddrddrddr2010
2010-08-12 · TA获得超过431个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:364万
展开全部
是不是数据库的并发能力不够呢,你在for循环里面加入延时,用System.Thread.Threading.sleep(10),试试看吧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式