[問題] Hibernate Performancej Issue

看板java作者 (tnsshnews)時間13年前 (2012/11/07 18:10), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
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

11/07 18:19, , 1F
連 return 都搞不太清楚就要用 Hibernate?
11/07 18:19, 1F

11/07 18:21, , 2F
古老有一篇文章在 Z-10-2-2,無聊可以去看一下
11/07 18:21, 2F

11/07 22:28, , 3F
手冊都寫那麼多了 Batch processing 沒去看一下!?
11/07 22:28, 3F

11/08 11:03, , 4F
謝謝提供batch process方向
11/08 11:03, 4F
文章代碼(AID): #1GcZEj6O (java)