`

java 本地解析sql文件,执行批量更新

    博客分类:
  • java
阅读更多

              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语句变得尤为重要。本文将详细介绍如何利用Java进行批量SQL执行,包括其背景、实现原理、...

    解析SQL提取表名并输出文本文件

    本文将深入探讨如何通过解析SQL文件来提取其中的表名,并将其保存为文本文件,这对于数据库管理员、数据分析师以及软件开发人员来说是一项非常实用的技能。 首先,让我们理解SQL语句的基本结构。SQL主要由DML(数据...

    批量执行SQL脚本(附源码).zip

    批量执行SQL脚本的能力对于开发者和DBA(数据库管理员)来说至关重要,尤其是在处理大量数据更新、表结构修改或数据迁移时。本文将深入探讨批量执行SQL脚本的原理以及提供的源码实现。 首先,批量执行SQL脚本通常...

    批量执行SQL文件

    在IT行业中,批量执行SQL文件是一项常见的数据库管理任务,尤其在数据迁移、系统初始化或更新时更为重要。这里,我们详细探讨如何实现这个过程,并基于给出的“批量执行SQL文件”这一主题,结合可能的标签“源码”和...

    sql2005 批量更新问题的解决方法

    在处理大量数据更新时,SQL Server 2005 的批量更新功能可以帮助提高执行效率。本文档详细介绍了如何有效利用 SQL Server 2005 的批量更新特性,并通过具体的示例来解决常见的性能瓶颈问题。 #### 二、使用 ...

    Java批量解析XML文件指定字段数据提取

    * path: 指定 文件目录,如f:/xml/下所有的xml文件,含子目录的文件。 * header: 指定需解析的标识字段 key为主标识字段,value为需要提取数据的字段用逗号隔开。 * 连接数据库部分我已注释掉,需要可以直接...

    SQLDumpSplitter 大Sql文件拆分成小文件

    SQLDumpSplitter的工作原理是解析SQL语句的结构,根据特定规则(如每N行、每个事务、每个CREATE TABLE语句等)来拆分文件。这样,用户可以设置合适的拆分条件,确保新生成的小文件在逻辑上是完整和可执行的。例如,...

    使用java解析XML文件,解析完之后将解析结果导入mysql数据库中

    本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...

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

    5. **SQL解析与执行**:工具需要能够解析SQL脚本文件,识别每条命令并正确执行。这可能涉及到对SQL语法的解析和命令执行逻辑。 6. **错误处理**:在批量执行过程中,如果遇到错误,工具应具备捕获和处理异常的能力...

    java上传excel并且解析入库

    在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...

    java读取TXT文件入库

    在Java编程中,读取TXT文件并将其内容存入数据库是一项常见的任务,特别是在数据处理、日志分析或者导入批量数据的场景下。以下是一个详细的知识点解析,涵盖了如何使用Java来实现这一操作。 1. **读取TXT文件** -...

    mysql 逆向解析mysqlbinlog成sql工具,可以解析5.7json字段,批量执行

    先私信后购买,解析binlog利器,回滚恢复误删除数据

    Java 实现从Excel批量导入数据到MySQL

    6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...

    java提取并分析sqlserver的日志

    综上所述,通过Java提取和分析SQL Server日志是一项涉及数据库连接、文件I/O、日志解析和分析的综合任务。理解这些知识点并熟练运用,可以帮助我们更好地管理和维护SQL Server环境,提升系统的稳定性和性能。

    php php3 aspx asp html sql java文件编码批量转换软件

    "php php3 aspx asp html sql java文件编码批量转换软件"是一款工具,专门设计用于解决这个问题,它可以批量转换这些不同类型的文件,确保它们的编码一致性,从而避免出现乱码和兼容性问题。 1. **PHP编码**:PHP是...

    java连sqlserver数据库详细解析哦

    使用Statement或PreparedStatement对象执行SQL查询或更新。例如,创建一个PreparedStatement对象并执行一个简单的SELECT语句: ```java String sql = "SELECT * FROM 表名"; PreparedStatement pstmt = conn....

    详解MyBatis直接执行SQL查询及数据批量插入

    批量插入的优点在于,它将多个插入操作合并为一个SQL语句,减少了网络传输和数据库解析SQL的时间,提高了效率。 总结起来,MyBatis提供了一种灵活的方式,允许开发者直接执行SQL查询和批量插入数据。在使用时,需要...

    java txt文件解析xml格式添加到数据库

    总之,通过使用Java的XML解析库和JDBC API,我们可以有效地解析TXT文件中的XML数据,并将其存储到数据库中。在处理大量数据时,选择合适的解析策略(如SAX或StAX)和数据库操作(如批处理)至关重要,以确保程序的...

    java代码oracle数据库批量插入

    `创建PreparedStatement对象,这个对象允许我们执行预编译的SQL语句,并且可以多次执行相同的语句而不必重新解析。 - **填充参数并添加到批处理**: 循环遍历列表中的每一条记录,并使用`pst.setString()`方法设置每...

    sql执行脚本.txt

    综上所述,这段代码示例展示了如何在Java中读取文件、解析内容并生成相应的SQL插入语句,以及如何将这些语句写入到新的文件中。这对于批量处理大量数据并导入数据库是非常有用的。此外,代码中对日期格式的特殊处理...

Global site tag (gtag.js) - Google Analytics