今天学到一点点hibernate优化的东西.先记录下来.

hibernate优化其实做到两点就行

第一点,配置文件,每次commit提交次数设置好

第二save的时候,及时清除缓存,清除缓存和上面设置的次数保持一致
 
还有一点、有的人会把 show_sql 设为true..其实这是不正确的
1
  

总结hibernate优化方法_心得

 
 
2
 
  1. public List hello() 
  2.         { 
  3.             List list=(List) this.getHibernateTemplate().execute(new HibernateCallback() { 
  4.              
  5.                 public Object doInHibernate(Session session) throws HibernateException, 
  6.                         SQLException { 
  7.                     // TODO Auto-generated method stub 
  8.                     String sql="select uid,uname,uport from userlist"
  9.                     List ls=session.createQuery(sql).list(); 
  10.                     return ls; 
  11.                 } 
  12.             }); 
  13.             return list; 
  14.         } 
  15.         public void doInsert() 
  16.         { 
  17.             //hibernate 优化 
  18.             this.getHibernateTemplate().execute(new HibernateCallback() { 
  19.                  
  20.                 public Object doInHibernate(Session session) throws HibernateException, 
  21.                         SQLException { 
  22.                     /* 
  23.                      * 假设一次性插入10W行数据 
  24.                      */ 
  25.                     int i=0,c=0
  26.                     String exeSql="insert into userlist values(?,?,?)"
  27.                     Query query=null
  28.                     long begin =System.currentTimeMillis(); 
  29.                     for(;i<100000;i++) 
  30.                     { 
  31.                         query=session.createQuery(exeSql); 
  32.                         query.setParameter(1,i); 
  33.                         query.setParameter(2,i); 
  34.                         query.setParameter(3,new SimpleDateFormat("yyyy-MM-dd 24HH:mm:ss").format(new Date())); 
  35.                         query.executeUpdate(); 
  36.                         c=c+1
  37.                         if(c%50==0
  38.                         { 
  39.                             session.flush(); 
  40.                             session.clear(); 
  41.                         } 
  42.                     } 
  43.                     long end =System.currentTimeMillis(); 
  44.                     System.out.println("doing time:"+(end-begin)); 
  45.                 return null
  46.                 } 
  47.             }); 
  48.         }