如何在Web应用程序(JSP)中插入批量oracle数据?

时间:2013-09-06 03:38:17

标签: oracle jsp bulkinsert

我创建了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();

任何人都有更好的主意?谢谢:))

1 个答案:

答案 0 :(得分:0)

是否需要jsp页面等待4M插入完成? 我认为在Web应用程序中等待持久操作总是很棘手。

您可以在请求处理程序中启动一个将执行插入异步的线程。 请求处理程序可以返回一个令牌。

然后,第二个JSP页面可以使用此标记来定期检查线程的状态。