心情手札——光头日记
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我~~~左二大海(我同事加同学)!

好基友一辈子!!!

浙公网安备 33010602011771号