我现在想写一个存储过程
插入数据库用的,表结构如下:ID NUMBER
CHARGING VARCHAR2(15)
ADDRESS_LOCAL VARCHAR2(10)
ADDRESS_REMOTE VARCHAR2(10)我现在需要解析一个50MB以上的数据,然后将解析后的数据插入数据库,去重复后保留,问题是数据量很大,而我现在的做法写入很慢,请高手指点,我想用存储过程写,但是又不知道存储过程能不能接受List的参数。
public void insertintoareainfo(List list) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
GetConn getConn = new GetConn();
Connection con = getConn.getConn();
Statement st = con.createStatement();
for(int i = 0 ; i < list.size();i++){
NumberAddress num = (NumberAddress) list.get(i);
String sql = "INSERT INTO DX_MMS_AREAINFO (ID,CHARGING,ADDRESS_LOCAL,ADDRESS_REMOTE) VALUES(SEQ_MMS_AREAINFO.NEXTVAL,'"+num.getNumPhone()+"','"+num.getNumBelong()+"','"+num.getNumRoam()+"')";
st.addBatch(sql);
}
int[] rs = st.executeBatch();
System.out.println("共处理"+rs.length+"条");
st.close();
getConn.closed(con);
}小弟现在求一个高效的存储过程,插入时间越短越好。在线等
插入数据库用的,表结构如下:ID NUMBER
CHARGING VARCHAR2(15)
ADDRESS_LOCAL VARCHAR2(10)
ADDRESS_REMOTE VARCHAR2(10)我现在需要解析一个50MB以上的数据,然后将解析后的数据插入数据库,去重复后保留,问题是数据量很大,而我现在的做法写入很慢,请高手指点,我想用存储过程写,但是又不知道存储过程能不能接受List的参数。
public void insertintoareainfo(List list) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException{
GetConn getConn = new GetConn();
Connection con = getConn.getConn();
Statement st = con.createStatement();
for(int i = 0 ; i < list.size();i++){
NumberAddress num = (NumberAddress) list.get(i);
String sql = "INSERT INTO DX_MMS_AREAINFO (ID,CHARGING,ADDRESS_LOCAL,ADDRESS_REMOTE) VALUES(SEQ_MMS_AREAINFO.NEXTVAL,'"+num.getNumPhone()+"','"+num.getNumBelong()+"','"+num.getNumRoam()+"')";
st.addBatch(sql);
}
int[] rs = st.executeBatch();
System.out.println("共处理"+rs.length+"条");
st.close();
getConn.closed(con);
}小弟现在求一个高效的存储过程,插入时间越短越好。在线等
解决方案 »
- 想考SCJP 淘宝卖的600块左右的考试券可信吗?
- 用getElementsByTagName取xml子节点问题
- Java中String.Split() 中要求 正则表达式,如何写?
- 制作学籍管理系统
- 问题:JApplet调用paint()方法
- 新手问题,望高手不啬赐教!
- 关于Java类的问题,欢迎大家参与,来者都有分!
- 我想找个 java 工作 希望各位给我处处问题 看我能不能胜任 任何问题均可 最好代表可以工作的水平
- 谁来帮帮小妹,有关developer cafe的问题!!!!!
- 简单问题,当三分拉!
- 求教:Runtime.getRuntime().exec() 调用程序 问题
- 占位符的问题
load data
infile 'card126.txt'
into table prescardvcinfo Append
TRAILING NULLCOLS
(
cardno char terminated by '|',
price char terminated by '|',
startdate char terminated by '|',
enddate char terminated by '|',
chargedateandtime char terminated by '|',
additionalday char terminated by '|',
chargemanner char terminated by '|',
chargephonenumber char terminated by '|',
flag char terminated by '|',
retailercode char terminated by '|'
)
用存储过程就可以,速度很快50W的数据瞬间就搞定,哈哈。开心,oracle强大、威武啊,当然也感谢大家帮忙,嘎嘎。