心情手札——光头日记

20121225日......
    今天早上起床上班、吃了两张大饼、跟两袋豆浆、看了火箭对公牛、快船队掘金的两场比赛!从9点办到两点钟!一大早基本没有做什么工作!但是、今天确实做了、跟以往不一样的事情跟工作。
    
    先从工作说起好吧!Excel的SSH(Struts2,Spring,Hibernate)批量新增。这个已经是老生常谈的问题了!
    想要提升新增的效率、第一点考虑的是访问数据库的频率问题!
    1、自动增长主见问题。
    首先是在Oracle建立sequence问题(因为我的数据库是Oracle)
    /**
     * 创建SEQ
     */
    create sequence SEQ_SSH_TEST  
    minvalue 1  
    maxvalue 999999999999999
    start with 1  
    increment by 1  
    cache 20;  

    
    Oracle实现自增的触发器:
    create or replace trigger TRI_SSH_TEST  
      before insert on SSH_TEST      
      for each row  
    declare  
    begin  
      --ST_ID 为主键
      select SEQ_SSH_TEST.Nextval into:new.ST_ID from dual;  
    end TRI_SSH_TEST  ;  
   
    下面是java的Dao:
      
 public void saveList(final List list)  
            throws HibernateException, SQLException {  
        this.getHibernateTemplate().execute(new HibernateCallback() {  
            public Object doInHibernate(Session session)  
                    throws HibernateException, SQLException {  
                //如果你们有其它的session获取方式得用其它的
                //如: this.getSessione();
                Connection conn = session.connection();  
                PreparedStatement ps = null;  
                String sql = "INSERT INTO TB1(column,...) VALUES (?,...)";  
                ps = conn.prepareStatement(sql);  
                for (int i = 0; i < list.size(); i++) {  
                    ps.setString(1, "");  
                    //ps.set...  
                    ps.addBatch();  
      
                    // 每一万次执行并清除session,否则你懂的。  
                    if (i % 10000 == 0) {  
                        ps.executeBatch();  
                        session.flush();  
                        session.clear();  
                    }  
                }  
                ps.executeBatch();  
                ps.close();  
                session.flush();  
                session.clear();  
            }  
        });  
    }



    还有一种就是调用存储过程、当然更好的就是多线程!如果你多线程了!
    我这里只是简单的应用!所以就不说那么多了!
    
    
    
    今天很值得一说的就是跟大海剃了一个光头!!!
    有图有真相啊亲!

    左1我~~~左二大海(我同事加同学)!




好基友一辈子!!!




   
posted @ 2012-12-27 00:53  java程序员填空  阅读(215)  评论(0编辑  收藏  举报