java执行sql文件这个问题麻烦的地方在于解析sql脚本文件。所幸的是ant与 ibatis提供了这种实现。
package com.unmi;
import java.io.*;
import org.apache.tools.ant.*;
import org.apache.tools.ant.taskdefs.*;
import org.apache.tools.ant.types.*;
/**
* 调用 ant.jar 的 SQLExec 执行 SQL 脚本文件
* @author Unmi
*/
public class AntExecSql {
/**
* @param args
*/
public static void main(String[] args) {
SQLExec sqlExec = new SQLExec();
//设置数据库参数
sqlExec.setDriver("oracle.jdbc.driver.OracleDriver");
sqlExec.setUrl("jdbc:oracle:thin:@10.128.x.x:1521:xxsid");
sqlExec.setUserid("xxuser");
sqlExec.setPassword("xxpass");
//要执行的脚本
sqlExec.setSrc(new File("src/data.sql"));
//有出错的语句该如何处理
sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance(
SQLExec.OnError.class, "abort")));
sqlExec.setPrint(true); //设置是否输出
//输出到文件 sql.out 中;不设置该属性,默认输出到控制台
sqlExec.setOutput(new File("src/sql.out"));
sqlExec.setProject(new Project()); // 要指定这个属性,不然会出错
sqlExec.execute();
}
}
ibatis:
package com.ibatis.jpetstore.test;
import java.sql.DriverManager;
import java.util.Properties;
import com.ibatis.common.jdbc.ScriptRunner;
import com.ibatis.common.resources.Resources;
import com.mysql.jdbc.Connection;
public class DBTestSQL {
public static void main(String[] args) {
try {
Properties props = Resources.getResourceAsProperties("properties/database.properties");
String url = props.getProperty("url");
String driver = props.getProperty("driver");
String username = props.getProperty("username");
String password = props.getProperty("password");
System.out.println(url);
if(url.equals("jdbc:mysql://localhost:3306/jpetstore1")) {
Class.forName(driver).newInstance();
Connection conn = (Connection) DriverManager.getConnection(url, username, password);
ScriptRunner runner = new ScriptRunner(conn, false, false);
runner.setErrorLogWriter(null);
runner.setLogWriter(null);
runner.runScript(Resources.getResourceAsReader("ddl/mysql/jpetstore-mysql-schema.sql"));
runner.runScript(Resources.getResourceAsReader("ddl/mysql/jpetstore-mysql-dataload.sql"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
ScriptRunner(com.ibatis.common.jdbc.*)用法
ScriptRunner类用于执行SQL语句,例如创建数据库schema,或传入缺省或测试数据库等等。 从下面的例子可以认识到它的易用性:
例子1:使用现成的数据库连接
Connection conn=getConnection();//some method to get a Connection
ScriptRunner runner=new ScriptRunner();
runner.runScript(conn,Resources.getResourceAsReader("com/some/resource/path/initialize.sql"));
conn.close();
例子2:使用新的数据库连接
ScriptRunner runner=new ScriptRunner("com.some.Driver","jdbc:url://db","login","password");
runner.runScript(conn,new FileReader("/user/local/db/scripts/initialize-db.sql"));
例子3:使用新创建的数据连接
Properties props= getProperties();//some properties form somewhere
ScriptRunner runner =new ScriptRunner(props);
runner.runScript(conn,new FileReader("/user/local/db/scripts/initialize-db.sql"));
分享到:
相关推荐
以上就是使用Java读取TXT文件并将其内容存入数据库的基本步骤。根据实际需求,可能还需要处理异常、优化性能(如批处理SQL)、验证数据格式等细节问题。在处理大规模数据时,考虑使用多线程或者流式处理来提高效率。
标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...
总结起来,Java实现“上传Excel并解析入库”涉及的关键技术包括文件上传(如Spring MVC的MultipartFile)、Excel解析(如Apache POI)以及数据库操作(JDBC或ORM)。通过熟练掌握这些技术,你可以构建出高效、稳定的...
提供的压缩包文件"java读取word和Excel文件"可能包含了示例代码或模板,用于展示如何结合Apache POI和JDBC实现上述功能。通过研究这些文件,你可以更深入地理解如何在Java中实现这个任务。 总的来说,这个项目涉及...
数据访问层则负责与数据库进行交互,执行SQL语句来完成数据的读写。 MySQL是这个项目中使用的数据库管理系统,它以高效、易用和开源著称,适合小型到中型企业级应用。在这个库存系统中,MySQL用于存储商品信息、...
在IT行业中,Java是一种广泛应用的编程语言,尤其在处理文件操作和数据库交互方面表现出色。本文将详细探讨如何使用Java解析TXT文件并将其中的数据导入到MySQL数据库中。 首先,我们需要了解的是“建表.sql”文件。...
Java的JDBC API支持批处理,通过设置`PreparedStatement`的`addBatch()`方法收集SQL语句,然后用`executeBatch()`一次性执行,这样可以显著提高性能。 4. **线程管理**:在多线程环境中,确保任务并发执行且不相互...
在Java编程环境中,解析XML文件是一项常见的任务,特别是在数据处理和集成中。XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析...
读取文件入库,两种方式 资源中内容包括两种功能:1.把数据库的数据,通过sql查询生成txt文件,存放到指定路径;(CreateFileToPathMain类,java调用shell脚本方式) 2.读取指定路径下的文件数据,插入到指定表中。...
这里可能用到了Java的`java.io`和`java.sql`包,包括`FileInputStream`用于读取文件,`PreparedStatement`用于执行带参数的SQL语句,以及`ResultSet`来处理查询结果。 在实际操作中,Blob文件入库通常分为以下步骤...
在Java编程环境中,读取接码枪(扫...综上所述,通过以上知识点,你可以实现一个完整的Java后台系统,自动获取并处理接码枪数据,将其存入数据库或文件,并且附带有详细的教程和模拟工具,极大地简化了开发和调试过程。
JDBC提供了一系列的API,使得Java程序员能够执行SQL语句,进行数据的读写、更新和删除。对于批量入库,JDBC提供了一个名为`PreparedStatement`的接口,它允许预编译SQL语句,适用于多次执行相同或相似的SQL的情况,...
在Java编程环境中,读取Excel(xls)文件并将其转换为Shell脚本是一种常见的数据处理需求,特别是在将数据导入数据库时。以下是一个基于给定描述的知识点详解: 1. **Java与Excel文件交互**: Java中处理Excel文件...
Java提供了`java.io.File`类,可以用来创建、读取、删除文件以及获取文件信息。在本例中,我们可以通过`File`类的`listFiles()`方法获取指定文件夹下的所有文件。配合`FileFilter`或`FilenameFilter`接口,我们可以...
这可能涉及到JDBC(Java Database Connectivity)的使用,通过建立数据库连接,预编译SQL语句,设置参数,执行SQL并处理结果。 为了确保兼容性,工程可能还包含了错误处理和异常捕获,以处理文件不存在、格式不正确...
本文将重点讨论如何通过Java处理XML格式的报文日志文件,并将其入库。 XML(Extensible Markup Language)是一种结构化数据表示语言,广泛应用于数据交换和存储。XML文件中的数据以键值对或节点树的形式存在,易于...
本教程将详细讲解如何在Idea中使用Java解析JSON文件,并将数据有效地导入到MySQL数据库。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...
对于数据导出,可能是读取数据库数据并写入文件,多线程可以并行处理不同的数据段,加快写入速度。可以使用`BufferedWriter`或`PrintWriter`来提高文件写入效率。 此外,需要注意的是,多线程环境下可能存在竞态...
在IT行业中,Excel文件常被用于存储和...通过以上步骤,我们可以高效地使用Java读取Excel文件并将其批量导入到数据库。在实际项目中,还可以根据具体需求进行更多的定制化处理,比如数据验证、错误处理、日志记录等。