今天學到一點點hibernate優化的東西.先記錄下來.
hibernate優化其實做到兩點就行
第一點,配置文件,每次commit提交次數設置好
第二save的時候,及時清除緩存,清除緩存和上面設置的次數保持一致
還有一點、有的人會把 show_sql 設爲true..其實這是不正確的
1
2
- public List hello()
- {
- List list=(List) this.getHibernateTemplate().execute(new HibernateCallback() {
- public Object doInHibernate(Session session) throws HibernateException,
- SQLException {
- // TODO Auto-generated method stub
- String sql="select uid,uname,uport from userlist";
- List ls=session.createQuery(sql).list();
- return ls;
- }
- });
- return list;
- }
- public void doInsert()
- {
- //hibernate 優化
- this.getHibernateTemplate().execute(new HibernateCallback() {
- public Object doInHibernate(Session session) throws HibernateException,
- SQLException {
- /*
- * 假設一次性插入10W行數據
- */
- int i=0,c=0;
- String exeSql="insert into userlist values(?,?,?)";
- Query query=null;
- long begin =System.currentTimeMillis();
- for(;i<100000;i++)
- {
- query=session.createQuery(exeSql);
- query.setParameter(1,i);
- query.setParameter(2,i);
- query.setParameter(3,new SimpleDateFormat("yyyy-MM-dd 24HH:mm:ss").format(new Date()));
- query.executeUpdate();
- c=c+1;
- if(c%50==0)
- {
- session.flush();
- session.clear();
- }
- }
- long end =System.currentTimeMillis();
- System.out.println("doing time:"+(end-begin));
- return null;
- }
- });
- }