`
zj850324
  • 浏览: 3889 次
  • 性别: Icon_minigender_1
  • 来自: 天水
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDBC脚本批处理

    博客分类:
  • Java
阅读更多
//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();
}
}



-----------------------------------------完
分享到:
评论

相关推荐

    JDBC高级批处理

    很多数据库管理工具如MySQL Workbench、Navicat等也支持批处理操作,可以在图形界面中方便地组织和执行批处理脚本。 总结,JDBC的高级批处理功能是处理大数据量场景的重要手段,通过合理运用批处理,可以显著提升...

    批处理执行mysql脚本

    在标题为“批处理执行mysql脚本”的主题中,我们聚焦于如何高效地运行一系列MySQL数据库操作。描述提到在处理大量SQL脚本时,常规工具可能不支持批量执行,因此需要自定义解决方案。下面,我们将深入探讨MySQL批处理...

    sql2000+java 批处理,测试demo

    "Pro.bat"很可能是项目的启动脚本,一个批处理文件,用于设置环境变量,定位到Java虚拟机(JVM),并运行主类,从而启动这个批处理系统。 总的来说,这个示例项目提供了一个用Java和SQL Server 2000实现批处理操作...

    mybat_脚本_bat_

    标题 "mybat_脚本_bat_" 暗示了这是一个关于Windows操作系统中使用批处理(Batch)脚本的资源,特别关注于MyBAT,可能是针对MyBatis框架的批处理脚本。批处理脚本是Windows环境下的简单程序,用于自动化一系列命令...

    spring jdbc 整合

    Spring JDBC支持批处理,允许一次性发送多个SQL语句,提高数据库操作效率。通过`JdbcTemplate`的`batchUpdate()`方法,可以方便地执行批处理命令。 六、异常处理 Spring JDBC将JDBC的异常转换为Spring的`...

    java_jdbc_banking_project_jdbc_

    6. **批处理**:如果项目涉及大量数据的操作,可能会用到JDBC的批处理功能,通过`addBatch()`和`executeBatch()`提高性能。 7. **异常处理**:在与数据库交互时,必须妥善处理可能出现的异常,如`SQLException`。...

    sqljdbc42_sqlserver_jdbc_Driver_zip_驱动_

    了解这些基本操作后,开发者还可以利用JDBC驱动提供的高级特性,比如批处理、事务控制、预编译的SQL语句、结果集的滚动和分页等,来提升应用的性能和安全性。同时,为了确保最佳性能,开发者还可以考虑使用连接池,...

    批处理对数据库的应用

    - 例如,在Java中可以使用JDBC的`addBatch()`方法来添加一系列的SQL语句到一个批处理中,然后使用`executeBatch()`方法一次性执行所有添加到批处理中的语句。 3. **操作系统级批处理**: - 在操作系统级别,可以...

    sqljdbc4-4.0.jar

    通常,这可以通过IDE(如Eclipse或IntelliJ IDEA)的配置,或者在构建脚本(如Maven或Gradle)中声明依赖来实现。 在连接SQL Server时,开发者会使用`com.microsoft.sqlserver.jdbc.SQLServerDriver`类的`forName()...

    oracle 中使用批处理文件,同时执行,多个.sql文件。

    在Oracle数据库管理中,批处理是一项重要的操作,它允许管理员或开发者一次性执行多个SQL脚本,从而提高工作效率。本文将详细讲解如何在Oracle环境中利用批处理文件同时执行多个.sql文件,以及相关的工具和源码应用...

    定时扫描dbf文件,并且导入数据库,附带批处理启动

    批处理脚本,通常使用Windows批处理命令(.bat文件)或Linux shell脚本,用于自动化执行一系列命令。在这个场景中,批处理脚本可能会启动Java应用,传递必要的参数(如dbf文件路径、数据库连接信息等),并确保程序...

    SqliteJDBC驱动

    除了基本的连接功能,SQLiteJDBC驱动还支持预编译的SQL语句(PreparedStatement)、批处理操作、存储过程调用等高级特性。由于SQLite本身对SQL标准的支持程度很高,因此使用SQLiteJDBC驱动可以实现大部分常见的...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    2. **事务大小**:在JDBC中,可以通过设置合适的批处理大小来平衡性能和内存消耗。在Mybatis中,批处理的大小由flushStatements()的调用频率决定。 3. **数据库配置**:如InnoDB引擎的缓冲池大小、重做日志大小等,...

    jconn4 jdbc连接sybase驱动

    `jconn4`驱动还支持一些高级特性,如连接池管理、批处理操作、自动重连机制等,这些都是企业级应用中提高性能和稳定性的关键。此外,`jconn4`驱动还优化了对Sybase特定功能的支持,如存储过程、触发器、事务处理等。...

    Oracle 客户端JDBC连接测试工具

    `sqlTest.bat`很可能是该工具的启动脚本,用于在Windows环境下运行Java应用程序。 **JDBC基础知识** JDBC是Java编程语言中的一个标准API,它为各种数据库提供了统一的接口,使得Java开发者能够编写与数据库无关的...

    JDBC代码手册 中文PDF版

    8. **JDBC优化技巧**:手册可能包含一些最佳实践,如使用预编译语句、关闭不再需要的资源、设置合适的批处理大小等,以提高JDBC应用的性能和稳定性。 除此之外,附带的文件如`jb51.net.txt`可能包含一些相关学习...

    JDBC2

    在JDBC2中,最重要的更新之一是引入了**批处理(Batch Processing)**。批处理允许开发者将多条SQL语句组合在一起,一次性提交给数据库执行,从而提高了效率,减少了网络传输开销。此外,它还支持预编译的**...

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

    源码附带的这个工具可能采用了一种类似批处理的方式,逐行读取SQL脚本,解析语句,并通过数据库连接执行。在编程实现上,可能会使用如Java的JDBC(Java Database Connectivity)或者Python的psycopg2(PostgreSQL ...

    spring_integration_jdbc.rar_spring jdbc

    对于大量重复的数据库操作,Spring JDBC提供了批处理功能,通过`JdbcTemplate`的`batchUpdate()`方法可以执行一系列SQL更新语句。 8. **错误和异常处理** Spring JDBC将数据库异常转换为Spring的`...

Global site tag (gtag.js) - Google Analytics