package com.sky.read;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class ReadSQLFile {
/**
* Oracle数据库连接URL
*/
private final static String DB_URL = "jdbc:oracle:thin:@localhost:1521:ORACL";
/**
* Oracle数据库连接驱
*/
private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
/**
* 数据库用户名
*/
private final static String DB_USERNAME = "gts1031";
/**
* 数据库密码
*/
private final static String DB_PASSWORD = "gts1031";
public static void main(String[] args) {
try {
ReadSQLFile rsf = new ReadSQLFile();
Connection conn = rsf.getConnection();
File f = new File("D:/init.sql");
InputStream is = new FileInputStream(f);
StringBuffer bu = new StringBuffer();
byte[] buf = new byte[1024];
int br = 0;
while ((br = is.read(buf)) != -1) {
bu.append(new String(buf, 0, br));
}
String str = bu.toString();
String[] fileName = str.split("@");
if (fileName != null && fileName.length > 0) {
for (int i = 0; i < fileName.length; i++) {
StringBuffer sb = new StringBuffer();
File file = new File("D:/" + fileName[i].trim());
InputStream in = new FileInputStream(file);
byte[] buff = new byte[1024];
int byteRead = 0;
while ((byteRead = in.read(buff)) != -1) {
sb.append(new String(buff, 0, byteRead));
Statement stmt = conn.createStatement();
String sqlStr = sb.toString();
String[] sql = sqlStr.split(";");
if (sql != null && sql.length > 0) {
for (int j = 0; j < sql.length; j++) {
try {
stmt.executeUpdate(sql[j]);
} catch (Exception e) {
// 打印日志
e.printStackTrace();
continue;
}
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
*
* @return Connection
*/
public Connection getConnection() {
/**
* 声明Connection连接对象
*/
Connection conn = null;
try {
/**
* 加载驱动
*/
Class.forName(DB_DRIVER);
/**
* 获取数据库连接
*/
conn = DriverManager
.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void closeConnection(Connection conn) {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
总的来说,"读取Excel生成Sql脚本"是一个利用Java编程语言,结合JDBC和POI库实现的数据处理工具。它简化了从Excel到数据库的数据迁移过程,提升了数据操作的效率。对于熟悉Java和数据库的开发者来说,这是一个非常有...
当面临大量SQL脚本需要执行时,手动逐个操作显然效率低下且容易出错。这时,批量执行SQL脚本的能力就显得尤为重要。本文将详细探讨如何进行SQL脚本的批处理执行,并提供相关策略和工具。 首先,了解批处理的基本...
本文将深入探讨如何在Java中调用SQL*Plus来执行定制的SQL脚本。 首先,SQL*Plus是Oracle数据库提供的一个命令行工具,用于执行SQL语句和PL/SQL块。在Java中调用SQL*Plus,通常有两种方式:一种是通过操作系统命令行...
本文将从两个方面介绍Java执行SQL脚本文件到数据库的方法,即直接读取SQL脚本文件的内容,然后传递到SQL中执行,以及使用ScriptRunner执行SQL脚本文件。 直接读取SQL脚本文件的内容,然后传递到SQL中执行 这种方法...
首先,批量执行SQL脚本通常涉及到读取一个或多个包含SQL命令的文本文件,并依次执行这些命令。这种功能可以极大地提高工作效率,避免手动逐条输入SQL语句。描述中提到的“可选目录,自动搜索子目录”功能意味着该...
1. **元数据解析**:它能读取数据库的元数据,如表结构、字段类型等,为生成SQL语句提供基础信息。 2. **语法规则引擎**:根据预定义的模板或者用户配置,结合元数据信息,生成符合SQL语法的语句。 3. **动态条件...
它可能包含了读取SQL语句、解析语法结构、应用格式规则以及生成格式化后SQL的逻辑。对于想要自定义或扩展格式化功能的开发者来说,这是一个重要的起点。 使用这些文件,开发者可以按照以下步骤进行操作: 1. 首先...
4. **业务逻辑**:编写业务逻辑实现类,如`AutoExecSqlFileController`,负责读取配置文件,建立数据库连接,检查已执行的版本,并执行未执行过的sql脚本。执行完成后更新执行记录表。 5. **Servlet初始化**:创建...
在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...
这种文件可以作为生成SQL脚本的输入,例如,读取表格中的字段信息和约束条件,然后自动生成创建表的SQL语句。Python的pandas库可以轻松地处理Excel文件,而Java的Apache POI库也能实现同样的功能。 此外,为了实现...
【商品库存管理系统java+sql】是一个面向初学者的项目,旨在帮助他们理解如何结合Java编程语言和MySQL数据库来实现一个简单的库存管理应用。这个系统的核心功能可能包括商品的添加、删除、查询以及库存的增减操作,...
在Java中,我们可以通过JDBC读取整个数据库或特定表的数据,将其导出为SQL脚本或CSV文件,实现数据备份。例如,可以逐行读取数据,然后使用`BufferedWriter`写入文件。同时,这些备份文件可以用于恢复操作。 **JAVA...
描述中提到的“java源码、文档、SQL脚本、excel数据”,这些内容代表了学习和实践报表技术POI所必需的各种资源。Java源码可能是实现了POI库的示例代码,供开发者参考和学习;文档可能包含了关于如何使用POI库进行...
"数据库建表代码.txt"文件中包含了创建数据库表的SQL脚本,通常包括学生表、课程表、成绩表等,这些表的设计遵循数据库设计的范式原则,如第一范式(1NF)、第二范式(2NF)和第三范式(3NF),以减少数据冗余,提高...
在这个项目中,SQL脚本可能是用来创建和初始化数据库表的,对数据库的增删改查操作可以通过MyBatis的Mapper接口来实现。 Redis是一款高性能的键值存储系统,常用于缓存数据,以提高数据读取速度。在这个项目中,...
SQL2JAVA正是这样一种工具,它能够自动生成Java类,这些类与数据库中的表结构相对应,同时提供了对数据库的CRUD(创建、读取、更新、删除)操作的方法。这大大简化了开发过程,特别是在处理复杂的数据库结构时,节省...
在Spring框架中,执行SQL脚本文件是一种常见的初始化数据库结构或数据的方式,特别是在项目启动或者进行自动化测试时。本文将详细介绍如何使用Spring来执行SQL脚本文件,以及一个具体的解决方案来处理多测试文件间的...
对于更复杂的批量执行需求,可以使用编程语言如Python、Java或PowerShell来编写自动化脚本,读取文件,逐条执行SQL语句,这适用于跨数据库系统执行脚本。 2. **批处理文件**: 在Windows环境下,可以创建批处理文件...
"通用权限设计源代码(带SQL脚本)"是一个专注于这一领域的项目,使用Java Servlet技术实现,旨在提供一个可复用的、灵活的权限管理系统。下面将详细介绍这个项目涉及的主要知识点。 1. **Java Servlet**:Java ...
【标题】"广西移动电商项目源码+sql脚本"所涵盖的知识点主要涉及电子商务系统开发、数据库管理和SQL语言。 1. **电子商务系统开发**:广西移动电商项目源码是实现一个在线交易平台的代码基础,这通常涉及到前端界面...