java 解析sql文件,批量更新
package cn.com.superv.netmessage.util;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DBTool {
/**
* @param args
* @throws ClassNotFoundException
* @throws SQLException
* @throws IOException
* @throws IllegalAccessException
* @throws InstantiationException
*/
//private final static ThreadLocal local = new ThreadLocal();
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException, InstantiationException, IllegalAccessException {
// TODO Auto-generated method stub
//要获得的文件名
String path = "data.sql";
//连接变量
String url,uid,pwd;
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
uid = "netmessage";
pwd = "netmessage";
execute(url, uid, pwd, path);
}
public static Connection getConnection(String url,String uid,String pwd) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection cn = null;
try {
cn = DriverManager.getConnection(url,uid,pwd);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cn;
}
public static void execute(String url,String uid,String pwd ,String path){
Connection cn = null;
try {
cn = getConnection (url,uid,pwd);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Statement stmt = null;
//读取文件
try
{stmt = cn.createStatement();
InputStream r = new FileInputStream(path);
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
byte tmp[] = new byte[99999];
byte context[];
int i = 0;
while ((i = r.read(tmp)) != -1)
{
byteout.write(tmp);
}
context = byteout.toByteArray();
String str = new String(context, "UTF-8");
// 分隔行
String stra[] = str.split(";");
for (int n = 0; n < stra.length; n++)
{
System.out.println(stra[n]);
stmt.addBatch(stra[n]);
}
stmt.executeBatch();
}
catch (Exception e)
{
e.printStackTrace();
} finally {
if(cn!=null){
try {
if(!cn.isClosed()){
cn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
}
}
http://www.1diaocha.com/user/Register.aspx?account=soqian
参加调查,轻松赚钱
分享到:
相关推荐
### Java批量执行SQL知识点解析 在Java开发过程中,经常需要与数据库进行交互,尤其是在处理大量数据时,如何高效地执行SQL语句变得尤为重要。本文将详细介绍如何利用Java进行批量SQL执行,包括其背景、实现原理、...
本文将深入探讨如何通过解析SQL文件来提取其中的表名,并将其保存为文本文件,这对于数据库管理员、数据分析师以及软件开发人员来说是一项非常实用的技能。 首先,让我们理解SQL语句的基本结构。SQL主要由DML(数据...
批量执行SQL脚本的能力对于开发者和DBA(数据库管理员)来说至关重要,尤其是在处理大量数据更新、表结构修改或数据迁移时。本文将深入探讨批量执行SQL脚本的原理以及提供的源码实现。 首先,批量执行SQL脚本通常...
在IT行业中,批量执行SQL文件是一项常见的数据库管理任务,尤其在数据迁移、系统初始化或更新时更为重要。这里,我们详细探讨如何实现这个过程,并基于给出的“批量执行SQL文件”这一主题,结合可能的标签“源码”和...
在处理大量数据更新时,SQL Server 2005 的批量更新功能可以帮助提高执行效率。本文档详细介绍了如何有效利用 SQL Server 2005 的批量更新特性,并通过具体的示例来解决常见的性能瓶颈问题。 #### 二、使用 ...
* path: 指定 文件目录,如f:/xml/下所有的xml文件,含子目录的文件。 * header: 指定需解析的标识字段 key为主标识字段,value为需要提取数据的字段用逗号隔开。 * 连接数据库部分我已注释掉,需要可以直接...
SQLDumpSplitter的工作原理是解析SQL语句的结构,根据特定规则(如每N行、每个事务、每个CREATE TABLE语句等)来拆分文件。这样,用户可以设置合适的拆分条件,确保新生成的小文件在逻辑上是完整和可执行的。例如,...
本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...
5. **SQL解析与执行**:工具需要能够解析SQL脚本文件,识别每条命令并正确执行。这可能涉及到对SQL语法的解析和命令执行逻辑。 6. **错误处理**:在批量执行过程中,如果遇到错误,工具应具备捕获和处理异常的能力...
在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...
在Java编程中,读取TXT文件并将其内容存入数据库是一项常见的任务,特别是在数据处理、日志分析或者导入批量数据的场景下。以下是一个详细的知识点解析,涵盖了如何使用Java来实现这一操作。 1. **读取TXT文件** -...
先私信后购买,解析binlog利器,回滚恢复误删除数据
6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...
综上所述,通过Java提取和分析SQL Server日志是一项涉及数据库连接、文件I/O、日志解析和分析的综合任务。理解这些知识点并熟练运用,可以帮助我们更好地管理和维护SQL Server环境,提升系统的稳定性和性能。
"php php3 aspx asp html sql java文件编码批量转换软件"是一款工具,专门设计用于解决这个问题,它可以批量转换这些不同类型的文件,确保它们的编码一致性,从而避免出现乱码和兼容性问题。 1. **PHP编码**:PHP是...
使用Statement或PreparedStatement对象执行SQL查询或更新。例如,创建一个PreparedStatement对象并执行一个简单的SELECT语句: ```java String sql = "SELECT * FROM 表名"; PreparedStatement pstmt = conn....
批量插入的优点在于,它将多个插入操作合并为一个SQL语句,减少了网络传输和数据库解析SQL的时间,提高了效率。 总结起来,MyBatis提供了一种灵活的方式,允许开发者直接执行SQL查询和批量插入数据。在使用时,需要...
总之,通过使用Java的XML解析库和JDBC API,我们可以有效地解析TXT文件中的XML数据,并将其存储到数据库中。在处理大量数据时,选择合适的解析策略(如SAX或StAX)和数据库操作(如批处理)至关重要,以确保程序的...
`创建PreparedStatement对象,这个对象允许我们执行预编译的SQL语句,并且可以多次执行相同的语句而不必重新解析。 - **填充参数并添加到批处理**: 循环遍历列表中的每一条记录,并使用`pst.setString()`方法设置每...
综上所述,这段代码示例展示了如何在Java中读取文件、解析内容并生成相应的SQL插入语句,以及如何将这些语句写入到新的文件中。这对于批量处理大量数据并导入数据库是非常有用的。此外,代码中对日期格式的特殊处理...