`
yzz9i
  • 浏览: 221492 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

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);
	}
}

分享到:
评论

相关推荐

    java批量执行SQL

    ### Java批量执行SQL知识点解析 在Java开发过程中,经常需要与数据库进行交互,尤其是在处理大量数据时,如何高效地执行SQL语句变得尤为重要。本文将详细介绍如何利用Java进行批量SQL执行,包括其背景、实现原理、...

    JDBC批量插入 更新 删除等操作

    ### JDBC批量操作详解 #### 一、JDBC批量插入 JDBC(Java Database Connectivity)是Java平台中用来标准地连接数据库的技术。通过JDBC,Java应用程序可以与多种类型的数据库进行交互,实现数据的读取、写入等功能...

    批量执行Sql脚本工具(含代码)

    因此,出现了批量执行Sql脚本的工具,如我们这里提到的"批量执行Sql脚本工具",它能有效提升工作效率,确保数据操作的一致性和准确性。该工具由作者自行编写,并提供了源码,这为用户提供了更多的定制化可能。 批量...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库。在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将...

    jdbc-批量插入数据

    对于大型数据集,可能需要考虑使用数据库特定的批量插入优化,例如MySQL的LOAD DATA INFILE命令,或者通过BULK INSERT在SQL Server中进行批量导入。这些方法通常比JDBC的批量处理更快,但不适用于所有情况。 在实际...

    jdbc批量插入大字段

    在实际应用中,"batchinsert"可能是一个包含示例代码的文件,展示了如何使用JDBC批量插入Blob字段的具体实现。通过研究和理解这些代码,你可以更好地掌握批量插入Blob数据的技巧,并根据自己的需求进行调整和优化。 ...

    适用SQL Server 2016版本的数据库加载驱动包——sqljdbc42.jar

    3. **执行SQL操作**:通过Statement或PreparedStatement对象执行SELECT、INSERT、UPDATE、DELETE等SQL命令。 4. **处理结果集**:对于查询操作,可以获取`java.sql.ResultSet`对象,遍历并处理返回的数据。 5. **...

    JDBC包(SQLServer2000)

    通过`addBatch()`和`executeBatch()`,可以批量执行多条SQL语句,提升性能。 **11. 面向对象的JDBC** `javax.sql.DataSource`接口提供了更高级别的数据库连接管理,适用于EJB和应用服务器。 **12. SQL Server 2000...

    SQL SERVER JDBC 驱动

    3. **执行SQL语句**:调用Statement或PreparedStatement的`executeQuery()`或`executeUpdate()`方法,执行SELECT、INSERT、UPDATE、DELETE等SQL语句。 4. **处理结果集**:对于`executeQuery()`返回的结果集,可以...

    sqljdbc.jar、sqljdbc4.jar

    4. **执行更新操作**:`executeUpdate()`方法用于执行INSERT、UPDATE、DELETE等非查询语句。 5. **处理事务**:使用`Connection`对象的`setAutoCommit()`和`commit()`/`rollback()`方法来控制事务。 6. **批处理**:...

    sqlserver jdbc 4.2

    - **SQL查询执行**:执行SQL语句,包括SELECT、INSERT、UPDATE、DELETE等操作。 - **批处理**:允许一次性提交多个SQL语句,提高效率。 - **事务支持**:支持ACID(原子性、一致性、隔离性和持久性)事务特性。 ...

    jdbc批量操作数据分析与实例

    ### JDBC批量操作数据分析与实例 #### 一、引言 在日常软件开发中,数据库操作是必不可少的一部分。其中,批量操作作为一种高效的处理方式被广泛应用于数据处理任务中。本文将通过对一个具体的Java程序示例(使用...

    sqlserver jdbc

    6. **批处理**:`BatchUpdateException`允许批量执行SQL语句,提高效率。 7. **连接池**:为了优化性能和资源管理,开发者可以利用连接池,如C3P0或HikariCP,管理SQLServer JDBC连接。 8. **性能优化**:SQL...

    JDBC集合SQL小项目.rar

    7. **批处理操作**:批量执行SQL语句以提高性能,如使用addBatch和executeBatch方法。 8. **预编译的PreparedStatement**:了解预编译SQL的好处,如防止SQL注入,提高执行效率。 9. **数据库连接池**:虽然描述中...

    mybatis直接执行sql语句后续之一

    这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。下面我们将深入探讨MyBatis的SQL执行机制及相关知识点。 首先,MyBatis的核心组件是SqlSessionFactory,它是创建...

    JDBC创建触发器 JDBC存储过程 JDBC创建表 数据备份 java备份数据库/JAVA恢复数据、java导入sql脚本

    本主题将深入探讨利用JDBC进行触发器创建、存储过程执行、表的构建,以及数据库的备份和恢复操作。 首先,**JDBC创建触发器** 是一种数据库级别的事件响应机制,允许在特定数据库事件(如插入、更新或删除记录)...

    Microsoft SQL Server 2000 Driver for JDBC

    -批处理:使用Statement对象的addBatch()和executeBatch()方法实现多条SQL语句的批量执行,提高性能。 - 游标处理:利用ResultSet的next()方法遍历查询结果,以及absolute()、relative()等方法进行游标定位。 - 元...

    建议使用微软JDBC Driver连接SQL Database-Jeffery1

    本文主要讨论的是在Eclipse环境中,如何使用微软的JDBC Driver来连接Azure SQL Database,并且对比了微软JDBC驱动与JTDS驱动在连接和操作数据库时的差异,强调了微软JDBC驱动在某些场景下的优势。 首先,微软的JDBC...

    java sqljdbc.jar

    6. **批处理**:通过`Statement.addBatch()`和`Statement.executeBatch()`,可以批量执行SQL命令,提高效率。 7. **预编译的PreparedStatement**:对于频繁执行的SQL语句,可以预编译为PreparedStatement对象,提升...

    mysql数据导入elasticsearch并支持SQL查询

    - **SQL-to-Elasticsearch**:尽管Elasticsearch原生不支持SQL查询,但可以通过一些中间件或者插件如`Elasticsearch-JDBC`、`Logstash Input JDBC`、`Hue SQL for Elasticsearch`等,使得用户能够用SQL语句来查询...

Global site tag (gtag.js) - Google Analytics