1. package com.file;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.util.ArrayList;
  5. public class ResolvFile {
  6. public static String readFileContent(String filepath) {
  7. //1.读取每一行记录,保存到List中
  8. ArrayList<String> records = new ArrayList<String>();
  9. try {
  10. BufferedReader br = new BufferedReader(new FileReader(filepath));
  11. String aRecord;
  12. while((aRecord = br.readLine())!=null){
  13. records.add(aRecord);//把读取到的每一行记录保存到List中
  14. }
  15. br.close();//用完以后关闭流
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. }
  19. //2.处理每一条记录成SQL语句或保存为对象(a.去掉字段前后的分号b.拼接成SQL或者保存为对象)
  20. ArrayList<String> recordList = new ArrayList<String>();//用于保存生成的SQL或对象
  21. for(int i = 0;i<records.size();i++) {
  22. String record = records.get(i);
  23. String[] recArray = minusQuotation(record.split(","));
  24. //拼接SQL语句或保存为对象
  25. String recordSql = getRecordSql(recArray);
  26. if (null!=recordSql) {
  27. recordList.add(recordSql);
  28. }
  29. }
  30. //3.批量执行SQL或保存对象
  31. batchExecuteSql(recordList);
  32. return null;
  33. }
  34. public static int batchExecuteSql(ArrayList<String> sqlList) {
  35. System.out.println("接下来可以执行SQL语句或保存对象");
  36. System.out.println("========批量执行SQL语句==========");
  37. System.out.println("将所有语句加入到Statment stat中");
  38. for (int i = 0;i<sqlList.size();i++) {
  39. String string = sqlList.get(i);
  40. System.out.println("通过stat.addBatch(sql)来加入语句"+i+": '"+string+"'");
  41. }
  42. System.out.println("通过stat.executeBatch()来执行所有的SQL语句");
  43. System.out.println("========批量执行SQL语句结束==========");
  44. //int count = stat.executeBatch();
  45. //return count;//返回执行的语句数量
  46. return sqlList.size();
  47. }
  48. //生成每条记录的SQL
  49. public static String getRecordSql(String[] recArray) {
  50. if (null==recArray) {
  51. return null;
  52. }
  53. String recordSql = "insert into tablename (sms,no,time) values('"+recArray[0]+"','"+recArray[2]+"','"+recArray[5]+"')";
  54. return recordSql;
  55. }
  56. /**
  57. * 去掉数组中每一个元素的开头和结尾的引号
  58. * @param recArray 要处理的数组
  59. * @return 处理后的数组
  60. */
  61. public static String[] minusQuotation(String[] recArray) {
  62. for (int i = 0; i < recArray.length; i++) {
  63. String str = recArray[i];
  64. if (null!=str) {
  65. if(str.indexOf( "\"")==0)
  66. str = str.substring(1,str.length());//去掉开头的分号
  67. if(str.lastIndexOf("\"")==(str.length()-1))
  68. str = str.substring(0,str.length()-1); //去掉最后的分号
  69. }
  70. recArray[i] = str;
  71. }
  72. return recArray;
  73. }
  74. public static void main(String[] args) {
  75. String filepath = "E:\\sxySMS\\smstest.txt";
  76. readFileContent(filepath);
  77. }
  78. }

jdbc批量执行SQL insert 操作的更多相关文章

  1. JDBC 复习4 批量执行SQL

    1使用jdbc进行批量执行SQL在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. package dbe ...

  2. JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句

    conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...

  3. mysql数据库批量执行sql文件对数据库进行操作【windows版本】

    起因: 因工作需要,在本机测试环境升级mysql数据库,需逐条执行mysql数据库的sql文件对数据库进行升级,因此找了些关于mysql的文章,对批量升级数据库所需的sql文件进行升级. 整理思路: ...

  4. JDBC批量执行executeBatch

    JDBC事务 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态.为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这 ...

  5. Java JDBC下执行SQL的不同方式、参数化预编译防御

    相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...

  6. SQL*PLUS中批量执行SQL语句

    SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...

  7. 批量执行sql语句

    基本使用 $sqls="sql语句1;sql语句2;sql语句n"; 或 $sqls="insert into xx;";  $sqls.="inse ...

  8. 批量执行SQL文件

    原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...

  9. PHP mysqli 增强 批量执行sql 语句的实现代码

    本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...

随机推荐

  1. 多个git账户生成多份rsa秘钥实现多个账户同时使用配置

    下文分享一个多个git账户生成多份rsa秘钥实现多个账户同时使用配置例子了,这个例子非常的好用对于有多个git的朋友有不小的帮助. 使用过git的童鞋应该对id_rsa秘钥不陌生,总得用github吧 ...

  2. vbs 获取当前目录的实现代码

    CMD当前路径 复制代码 代码如下: test = createobject("Scripting.FileSystemObject").GetFolder(".&quo ...

  3. ASP.NET弹出提示点击确定之后再跳转页面的方法

    //ASP.NET弹出提示点击确定之后再跳转页面的方法 //弹出了提示并且通过location.href转到了DeskTop.aspx页面 Response.Write("<scrip ...

  4. JavaScript在智能手机上的应用-判断是否为移动浏览器

    -------------------- <script type="text/javascript">            var userAgent = navi ...

  5. 剑指offer青蛙跳台阶问题

    (1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级.求该青蛙跳上一个n 级的台阶总共有多少种跳法. //递归方式  public static int f(int n) { //参数合法性验证 ...

  6. springmvc权限拦截器

    配置文件spring-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  7. 转 使用SQL从AWR收集数据库性能变化趋势

    使用SQL从AWR收集数据库性能变化趋势 为了对数据库一段时间的性能情况有个全面了解,显然AWR是一个非常有用的工具, 但很多人只会在数据库有性能问题时才会生成问题时段的awr报告去分析.虽然AWR ...

  8. scrollview上面的图片不上下滑动

    self.automaticallyAdjustsScrollViewInsets= NO;

  9. PHP中级篇 Apache配置httpd-vhosts虚拟主机总结及注意事项[OK]

    经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http ...

  10. c++运行时类型识别(rtti)

    一个简单运行时类型识别 namespace rtti_ex { /* * 类型信息基类 */ class i_type_info { public: // 判断是否是指定类型 bool is(cons ...