心情手札——光头日记
20121225日......
今天早上起床上班、吃了两张大饼、跟两袋豆浆、看了火箭对公牛、快船队掘金的两场比赛!从9点办到两点钟!一大早基本没有做什么工作!但是、今天确实做了、跟以往不一样的事情跟工作。
先从工作说起好吧!Excel的SSH(Struts2,Spring,Hibernate)批量新增。这个已经是老生常谈的问题了!
想要提升新增的效率、第一点考虑的是访问数据库的频率问题!
1、自动增长主见问题。
首先是在Oracle建立sequence问题(因为我的数据库是Oracle)
/**
* 创建SEQ
*/
Oracle实现自增的触发器:
下面是java的Dao:
还有一种就是调用存储过程、当然更好的就是多线程!如果你多线程了!
我这里只是简单的应用!所以就不说那么多了!
今天很值得一说的就是跟大海剃了一个光头!!!
有图有真相啊亲!
今天早上起床上班、吃了两张大饼、跟两袋豆浆、看了火箭对公牛、快船队掘金的两场比赛!从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我~~~左二大海(我同事加同学)!
好基友一辈子!!!