java中的String 插入oracle 批量操作
现有Stringstring="AA11BB22CC33DD44........“;需要把它批量插入oracle:数据库字段1字段2AA11BB22CC33DD44......
现有 String string="AA 11 BB 22 CC 33 DD 44 ........“;
需要把它批量插入oracle :
数据库
字段1 字段2
AA 11
BB 22
CC 33
DD 44
..... .....
提供参考代码:
1.//批量添加20000条数据用时8秒。
2.try {
3. String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SID
4. String user = "oracle";
5. String password = "oracle";
6. StringBuffer sql = new StringBuffer();
7. sql.append("insert into ex_log (EX_LOG_ID,EX_LOG_DATE) values (?,?)");
8. Class.forName("oracle.jdbc.driver.OracleDriver");
9. Connection con = (Connection) DriverManager.getConnection(url,user,password);
10. // 关闭事务自动提交
11. con.setAutoCommit(false);
12.
13. Long startTime = System.currentTimeMillis();
14. PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql.toString());
15. for (int i = 0; i < list.size(); i++) {
16. ExLog exLog = (ExLog)list.get(i);
17. pst.setString(1, exLog.getExLogId());
18. pst.setString(2, exLog.getExLogDate());
19. // 把一个SQL命令加入命令列表
20. pst.addBatch();
21. }
22. // 执行批量更新
23. pst.executeBatch();
24. // 语句执行完毕,提交本事务
25. con.commit();
26. Long endTime = System.currentTimeMillis();
27. System.out.println("用时:" + (endTime - startTime));
28. pst.close();
29. con.close();
30. } catch (ClassNotFoundException e) {
31. e.printStackTrace();
32. } catch (SQLException e) {
33. e.printStackTrace();
34. } 展开
需要把它批量插入oracle :
数据库
字段1 字段2
AA 11
BB 22
CC 33
DD 44
..... .....
提供参考代码:
1.//批量添加20000条数据用时8秒。
2.try {
3. String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SID
4. String user = "oracle";
5. String password = "oracle";
6. StringBuffer sql = new StringBuffer();
7. sql.append("insert into ex_log (EX_LOG_ID,EX_LOG_DATE) values (?,?)");
8. Class.forName("oracle.jdbc.driver.OracleDriver");
9. Connection con = (Connection) DriverManager.getConnection(url,user,password);
10. // 关闭事务自动提交
11. con.setAutoCommit(false);
12.
13. Long startTime = System.currentTimeMillis();
14. PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql.toString());
15. for (int i = 0; i < list.size(); i++) {
16. ExLog exLog = (ExLog)list.get(i);
17. pst.setString(1, exLog.getExLogId());
18. pst.setString(2, exLog.getExLogDate());
19. // 把一个SQL命令加入命令列表
20. pst.addBatch();
21. }
22. // 执行批量更新
23. pst.executeBatch();
24. // 语句执行完毕,提交本事务
25. con.commit();
26. Long endTime = System.currentTimeMillis();
27. System.out.println("用时:" + (endTime - startTime));
28. pst.close();
29. con.close();
30. } catch (ClassNotFoundException e) {
31. e.printStackTrace();
32. } catch (SQLException e) {
33. e.printStackTrace();
34. } 展开
3个回答
展开全部
建议:
分批提交
分批提交
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是要把字符串的内容分开做字段名或内容吗?
更多追问追答
追问
对的。我是从多行文本获取的 ,多行文本获取的String就是"AA 11 BB 22 CC 33 DD 44 ........“ 这个样子。那么我想把他插入到一个oracle里面的标,表里面只有两个字段:字段1 字段2.。AA BB CC DD插入到字段1 。11 22 33 44插入到字段二。从而变成oracle的这张表:
追答
你可以给字符串拦串的,就是按照条件把String里的内容按照分割条件放到String数组中!试试
String[] str2 = str1.split(",");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询