我创建了jsp web应用程序来执行400万次数据插入。插入过程使用来自另一个表的循环,所以我做了选择查询 - >循环 - >插入到其他表,但每次我运行它,页面加载缓慢结束超时。因此,并非所有数据都已成功插入
我曾试图使用bul数据插入,但它并没有让我感到高兴。
btw这是示例代码:
pstatement = connection.prepareStatement(insertquery);
pstatement.setString(1, request.getParameter("promo"));
while (rset.next()) {
pstatement.setString(1, rset.getString(1));
pstatement.setString(2, request.getParameter("promo"));
pstatement.addBatch();
out.print(rset.getString(1) + " Added<br>");
if (++countbatch % batchSize == 0) {
pstatement.executeBatch();
}
}
pstatement.executeBatch();
使用精选技巧的另一个尝试,它也没有帮助
String insertquery = "INSERT INTO datapin (msisdn,nama_promo) SELECT msisdnlist.msisdn AS msisdn, ? AS nama_promo FROM msisdnlist ";
pstatement = connection.prepareStatement(insertquery);
pstatement.setString(1, request.getParameter("promo"));
pstatement.executeQuery();
任何人都有更好的主意?谢谢:))
答案 0 :(得分:0)
是否需要jsp页面等待4M插入完成? 我认为在Web应用程序中等待持久操作总是很棘手。
您可以在请求处理程序中启动一个将执行插入异步的线程。 请求处理程序可以返回一个令牌。
然后,第二个JSP页面可以使用此标记来定期检查线程的状态。