jdbc批量执行SQL insert 操作
- package com.file;
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.util.ArrayList;
- public class ResolvFile {
- public static String readFileContent(String filepath) {
- //1.读取每一行记录,保存到List中
- ArrayList<String> records = new ArrayList<String>();
- try {
- BufferedReader br = new BufferedReader(new FileReader(filepath));
- String aRecord;
- while((aRecord = br.readLine())!=null){
- records.add(aRecord);//把读取到的每一行记录保存到List中
- }
- br.close();//用完以后关闭流
- } catch (Exception e) {
- e.printStackTrace();
- }
- //2.处理每一条记录成SQL语句或保存为对象(a.去掉字段前后的分号b.拼接成SQL或者保存为对象)
- ArrayList<String> recordList = new ArrayList<String>();//用于保存生成的SQL或对象
- for(int i = 0;i<records.size();i++) {
- String record = records.get(i);
- String[] recArray = minusQuotation(record.split(","));
- //拼接SQL语句或保存为对象
- String recordSql = getRecordSql(recArray);
- if (null!=recordSql) {
- recordList.add(recordSql);
- }
- }
- //3.批量执行SQL或保存对象
- batchExecuteSql(recordList);
- return null;
- }
- public static int batchExecuteSql(ArrayList<String> sqlList) {
- System.out.println("接下来可以执行SQL语句或保存对象");
- System.out.println("========批量执行SQL语句==========");
- System.out.println("将所有语句加入到Statment stat中");
- for (int i = 0;i<sqlList.size();i++) {
- String string = sqlList.get(i);
- System.out.println("通过stat.addBatch(sql)来加入语句"+i+": '"+string+"'");
- }
- System.out.println("通过stat.executeBatch()来执行所有的SQL语句");
- System.out.println("========批量执行SQL语句结束==========");
- //int count = stat.executeBatch();
- //return count;//返回执行的语句数量
- return sqlList.size();
- }
- //生成每条记录的SQL
- public static String getRecordSql(String[] recArray) {
- if (null==recArray) {
- return null;
- }
- String recordSql = "insert into tablename (sms,no,time) values('"+recArray[0]+"','"+recArray[2]+"','"+recArray[5]+"')";
- return recordSql;
- }
- /**
- * 去掉数组中每一个元素的开头和结尾的引号
- * @param recArray 要处理的数组
- * @return 处理后的数组
- */
- public static String[] minusQuotation(String[] recArray) {
- for (int i = 0; i < recArray.length; i++) {
- String str = recArray[i];
- if (null!=str) {
- if(str.indexOf( "\"")==0)
- str = str.substring(1,str.length());//去掉开头的分号
- if(str.lastIndexOf("\"")==(str.length()-1))
- str = str.substring(0,str.length()-1); //去掉最后的分号
- }
- recArray[i] = str;
- }
- return recArray;
- }
- public static void main(String[] args) {
- String filepath = "E:\\sxySMS\\smstest.txt";
- readFileContent(filepath);
- }
- }
jdbc批量执行SQL insert 操作的更多相关文章
- JDBC 复习4 批量执行SQL
1使用jdbc进行批量执行SQL在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. package dbe ...
- JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句
conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...
- mysql数据库批量执行sql文件对数据库进行操作【windows版本】
起因: 因工作需要,在本机测试环境升级mysql数据库,需逐条执行mysql数据库的sql文件对数据库进行升级,因此找了些关于mysql的文章,对批量升级数据库所需的sql文件进行升级. 整理思路: ...
- JDBC批量执行executeBatch
JDBC事务 在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态.为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这 ...
- Java JDBC下执行SQL的不同方式、参数化预编译防御
相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...
- SQL*PLUS中批量执行SQL语句
SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书) ...
- 批量执行sql语句
基本使用 $sqls="sql语句1;sql语句2;sql语句n"; 或 $sqls="insert into xx;"; $sqls.="inse ...
- 批量执行SQL文件
原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...
- PHP mysqli 增强 批量执行sql 语句的实现代码
本篇文章介绍了,在PHP中 mysqli 增强 批量执行sql 语句的实现代码.需要的朋友参考下. mysqli 增强-批量执行sql 语句 <?php //mysqli 增强-批量执行sql ...
随机推荐
- MFC中为菜单或按钮添加快捷键功能
1.新建一快捷键资源,ACCELERATOR,关联相应的ID号,下图所示中,其中,第一个ID为自定义快捷键ID,按CTRL+R,此时响应该ID以应的消息响应函数, 第二个ID为菜单ID,此时按CTRL ...
- JavaScript高级程序设计:第二十章
第二十章 一.语法 JSON的语法可以表示以下三种类型的值: (1)简单值 (2)对象 JSON的对象与javascript字面量有一些不同.例如,在javascript中,前面的对象字面量可以写成下 ...
- Entity Framework教程
随着Code First一起出现的DbContext和DbSet类绝对可以称得上EF的功能核心,其取代了之前的ObjectContext和ObjectSet类,提供了与数据库通信,管理内存中实体的重要 ...
- sqlserver 批量修改表前缀
先把第一句话放到sqlserver查询器中执行一下.然后把查询结果复制出来,进行编辑...一看你就懂了..简单的sql语句拼装 select ' exec sp_rename "' + na ...
- linux下如何开放80端口
linux清屏命令:clear linux版本:CentOS6.5 1.开启80端口命令:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT2.保存 ...
- php 特定类型测试函数
is_array() 检查变量是否是数组 is_double().is_float().is_real() 检查变量是否是浮点数 is_long().is_int().is_integer()检查变量 ...
- 理解Java String和String Pool
本文转载自: http://blog.sina.com.cn/s/blog_5203f6ce0100tiux.html 要理解 java中String的运作方式,必须明确一点:String是一个非可变 ...
- Inno Setup入门(二十二)——Inno Setup类参考(8)
: Install Setup 2013-02-02 11:31 477人阅读 评论(0) 收藏 举报 列表框 列表框(ListBox)是Windows应用程序中重要的输入手段,其中包括多个选项用户可 ...
- 据磁力链获得BT种子
最近研究了一下磁力链magnet和BT种子torrent文件之间的相互转换.其实通过torrent文件获得磁力链实现起来比较简单,但反过来并非是一个可逆的过程,磁力链转BT种子理论上来说是不可能实现的 ...
- ant android打包--学习第一弹
1. 准备工作 用eclipse创建一个android项目 安装ant和SDK,并且添加到系统环境变量 2.ant 使用 2.1 ant简单的帮助命令 ant -p 2.2 创建ant配置文件%AND ...