现在的位置: 首页 > 综合 > 正文

心情手札——光头日记

2013年09月04日 ⁄ 综合 ⁄ 共 1334字 ⁄ 字号 评论关闭

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我~~~左二大海(我同事加同学)!

好基友一辈子!!!

   

抱歉!评论已关闭.