看板 java 關於我們 聯絡資訊
Dear alll, 請問如果有大量資料要透過loop寫入資料庫, 使用hibernate是不是會比直接用jdbc呢? Long starttime = System.currentTimeMillis(); for(int i=0; i<1000; i++){ Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx= session.beginTransaction(); M02Mst mst = new M02Mst(); mst.setGrpId(i); mst.setGrpAcptTime(new Date()); session.close(); } Long endtime = System.currentTimeMillis(); logger.info("Total spent:"+(endtime-starttime)/1000+" secs"); >>>>>>>>這樣要花6秒, 但如果將session抽出去外面, 如下 Long starttime = System.currentTimeMillis(); Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx= session.beginTransaction(); for(int i=0; i<1000; i++){ M02Mst mst = new M02Mst(); mst.setGrpId(i); mst.setGrpAcptTime(new Date()); } session.close(); >>>>>>>>這樣只要2秒, 但還是覺得很慢, 我朋友直接用jdbc, 不需要1秒就全做完了, 請問是不是hibernate一定會較慢呢? 謝謝 Long endtime = System.currentTimeMillis(); logger.info("Total spent:"+(endtime-starttime)/1000+" secs"); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.79.199.63
PsMonkey:連 return 都搞不太清楚就要用 Hibernate? 11/07 18:19
PsMonkey:古老有一篇文章在 Z-10-2-2,無聊可以去看一下 11/07 18:21
qrtt1:手冊都寫那麼多了 Batch processing 沒去看一下!? 11/07 22:28
tnsshnews:謝謝提供batch process方向 11/08 11:03