//db1.properties数据库配置
driver = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/zj
root = root
password = 123
-----------------------------------------------
package com.engaworld.test.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class GetPropertiesConfig {
private static Properties prop = new Properties();
private static GetPropertiesConfig propertiesconfig=new GetPropertiesConfig();
private GetPropertiesConfig(){
InputStream in = this.getClass().getResourceAsStream("db1.properties");
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getPropertiesItem(String key){
return prop.getProperty(key);
}
public static GetPropertiesConfig getPropertiesconfig() {
return propertiesconfig;
}
}
----------------------------------------------
package com.engaworld.test.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
public class MySQLConnectionBean {
private String driver;
private String url;
private String root;
private String password;
private Connection connection;
private BasicDataSource bas;
public MySQLConnectionBean(){
driver=GetPropertiesConfig.getPropertiesconfig().getPropertiesItem("driver");
url=GetPropertiesConfig.getPropertiesconfig().getPropertiesItem("url");
root=GetPropertiesConfig.getPropertiesconfig().getPropertiesItem("root");
password=GetPropertiesConfig.getPropertiesconfig().getPropertiesItem("password");
bas =new BasicDataSource();
bas.setDriverClassName(driver);
bas.setUrl(url);
bas.setUsername(root);
bas.setPassword(password);
try {
Class.forName(driver);
connection=DriverManager.getConnection(url,root,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection(){
try {
connection = bas.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
public void closeDBConnection(){
if(null!=connection){
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
-----------------------------------------------
package com.engaworld.test.util;
/*
* 脚本批处理
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class TestDBConnection {
private Connection con;
private PreparedStatement pst;
private ResultSet rs;
public List<List<String>> theSelect(List<String> list) {
List<List<String>> listt = new ArrayList<List<String>>();
List<String> lists = new ArrayList<String>();
MySQLConnectionBean mysqlCon=new MySQLConnectionBean();
con=mysqlCon.getConnection();
try {
con.setAutoCommit(false);
int n = 0;
for (String string : list) {
n++;
System.out.println("第"+n+"条SQl");
pst=con.prepareStatement(string);
rs = pst.executeQuery();
int count = rs.getMetaData().getColumnCount();
int rows = 0;
for (int i = 1; i <= count; i++) {
lists.add(rs.getMetaData().getColumnName(i));
}
while(rs.next()){
int i = 1;
while(i<=count){
try {
lists.add(rs.getString(i));
i++;
} catch (Exception e) {
// TODO Auto-generated catch block
i = 50;
}
}
lists.add("\n");
rows++;
}
}
listt.add(lists);
con.commit();
} catch (SQLException e) {
e.printStackTrace();
}
mysqlCon.closeDBConnection();
return listt;
}
public void action(){
PrintWriter pw = null;
try {
pw = new PrintWriter(new BufferedWriter(new FileWriter(new File("D:/test/11.txt"))));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
List<String> list = new ArrayList<String>();
try {
BufferedReader in = new BufferedReader(new FileReader(new File("D:/Workspaces/MyEclipse 8.6/Test2012-04-28/thesql.sql")));
String s1;
while((s1=in.readLine())!=null){
// s1.replace("[date]", GetSystemDate.getDate().toString());//替换日期参数为系统当前日期
list.add(s1);
}
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<List<String>> listt = this.theSelect(list);
for (List<String> list2 : listt) {
int a = 0;
for (String string : list2) {
a++;
if(string.equals("\n")){
a = 0;
}
if(a != 0){
string += ",";
}
System.out.print(string);
pw.print(string);
}
}
pw.close();
}
public static void main(String[] args) {
TestDBConnection tdb = new TestDBConnection();
tdb.action();
}
}
-----------------------------------------完
分享到:
相关推荐
很多数据库管理工具如MySQL Workbench、Navicat等也支持批处理操作,可以在图形界面中方便地组织和执行批处理脚本。 总结,JDBC的高级批处理功能是处理大数据量场景的重要手段,通过合理运用批处理,可以显著提升...
在标题为“批处理执行mysql脚本”的主题中,我们聚焦于如何高效地运行一系列MySQL数据库操作。描述提到在处理大量SQL脚本时,常规工具可能不支持批量执行,因此需要自定义解决方案。下面,我们将深入探讨MySQL批处理...
"Pro.bat"很可能是项目的启动脚本,一个批处理文件,用于设置环境变量,定位到Java虚拟机(JVM),并运行主类,从而启动这个批处理系统。 总的来说,这个示例项目提供了一个用Java和SQL Server 2000实现批处理操作...
标题 "mybat_脚本_bat_" 暗示了这是一个关于Windows操作系统中使用批处理(Batch)脚本的资源,特别关注于MyBAT,可能是针对MyBatis框架的批处理脚本。批处理脚本是Windows环境下的简单程序,用于自动化一系列命令...
Spring JDBC支持批处理,允许一次性发送多个SQL语句,提高数据库操作效率。通过`JdbcTemplate`的`batchUpdate()`方法,可以方便地执行批处理命令。 六、异常处理 Spring JDBC将JDBC的异常转换为Spring的`...
6. **批处理**:如果项目涉及大量数据的操作,可能会用到JDBC的批处理功能,通过`addBatch()`和`executeBatch()`提高性能。 7. **异常处理**:在与数据库交互时,必须妥善处理可能出现的异常,如`SQLException`。...
了解这些基本操作后,开发者还可以利用JDBC驱动提供的高级特性,比如批处理、事务控制、预编译的SQL语句、结果集的滚动和分页等,来提升应用的性能和安全性。同时,为了确保最佳性能,开发者还可以考虑使用连接池,...
- 例如,在Java中可以使用JDBC的`addBatch()`方法来添加一系列的SQL语句到一个批处理中,然后使用`executeBatch()`方法一次性执行所有添加到批处理中的语句。 3. **操作系统级批处理**: - 在操作系统级别,可以...
通常,这可以通过IDE(如Eclipse或IntelliJ IDEA)的配置,或者在构建脚本(如Maven或Gradle)中声明依赖来实现。 在连接SQL Server时,开发者会使用`com.microsoft.sqlserver.jdbc.SQLServerDriver`类的`forName()...
在Oracle数据库管理中,批处理是一项重要的操作,它允许管理员或开发者一次性执行多个SQL脚本,从而提高工作效率。本文将详细讲解如何在Oracle环境中利用批处理文件同时执行多个.sql文件,以及相关的工具和源码应用...
批处理脚本,通常使用Windows批处理命令(.bat文件)或Linux shell脚本,用于自动化执行一系列命令。在这个场景中,批处理脚本可能会启动Java应用,传递必要的参数(如dbf文件路径、数据库连接信息等),并确保程序...
除了基本的连接功能,SQLiteJDBC驱动还支持预编译的SQL语句(PreparedStatement)、批处理操作、存储过程调用等高级特性。由于SQLite本身对SQL标准的支持程度很高,因此使用SQLiteJDBC驱动可以实现大部分常见的...
2. **事务大小**:在JDBC中,可以通过设置合适的批处理大小来平衡性能和内存消耗。在Mybatis中,批处理的大小由flushStatements()的调用频率决定。 3. **数据库配置**:如InnoDB引擎的缓冲池大小、重做日志大小等,...
`jconn4`驱动还支持一些高级特性,如连接池管理、批处理操作、自动重连机制等,这些都是企业级应用中提高性能和稳定性的关键。此外,`jconn4`驱动还优化了对Sybase特定功能的支持,如存储过程、触发器、事务处理等。...
`sqlTest.bat`很可能是该工具的启动脚本,用于在Windows环境下运行Java应用程序。 **JDBC基础知识** JDBC是Java编程语言中的一个标准API,它为各种数据库提供了统一的接口,使得Java开发者能够编写与数据库无关的...
8. **JDBC优化技巧**:手册可能包含一些最佳实践,如使用预编译语句、关闭不再需要的资源、设置合适的批处理大小等,以提高JDBC应用的性能和稳定性。 除此之外,附带的文件如`jb51.net.txt`可能包含一些相关学习...
在JDBC2中,最重要的更新之一是引入了**批处理(Batch Processing)**。批处理允许开发者将多条SQL语句组合在一起,一次性提交给数据库执行,从而提高了效率,减少了网络传输开销。此外,它还支持预编译的**...
源码附带的这个工具可能采用了一种类似批处理的方式,逐行读取SQL脚本,解析语句,并通过数据库连接执行。在编程实现上,可能会使用如Java的JDBC(Java Database Connectivity)或者Python的psycopg2(PostgreSQL ...
对于大量重复的数据库操作,Spring JDBC提供了批处理功能,通过`JdbcTemplate`的`batchUpdate()`方法可以执行一系列SQL更新语句。 8. **错误和异常处理** Spring JDBC将数据库异常转换为Spring的`...