投稿‎ > ‎

Export Oracle XMLType Data to Excel

posted Mar 15, 2016, 7:56 PM by Zhang Wenxu   [ updated Mar 15, 2016, 8:05 PM ]
package jp.btsol.dbunit;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;

import org.apache.commons.cli.BasicParse;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Options;
import org.apache.commons.ParseException;
import org.apache.commons.io.FilenameUtils;
import org.dbunit.dataqbase.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.excel.XlsDataSet;
import org.dbunit.ext.oracle.OracleConnection;

pulic class Export2Excee{
    private static final String TEST_DATA_DIRECTORY = "D:/work/";
    private static final String DATA_FILE_NAME = "dbUnitTest.xls";

    private static final String DRIVER_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

    public static void main(String[] args) throws Exception{
        try{
              String tableName = "";
              String sql = "";
              url = "";
              String userId = "";
              String password = "";
              String filename = TEST_DATA_DIRECTORY + DATA_FILE_NAME;
              Options options = new Options();
              options.addOption("t", true, "table name");
              options.addOption("sql", true, "sql");
              options.addOption("out", true, "output file name");
              options.addOption("url", true, "url");
              options.addOption("u", true, "userId");
              options.addOption("p", true, "password");
              CommandLineParser parser = new BasicParse();
              CommandLine commandLine;
              try{
                    commandLine = parser.parse(options, args);
               }catch(ParseException e){
                     System.err.println("parameter error.");
                     return;
               }
               If(commandLine.hasOption("t")){
                      tableName = commandLine.getOptionValue("t");
               }
               If(commandLine.hasOption("sql")){
                      sql = commandLine.getOptionValue("sql");
               }
               If(commandLine.hasOption("out")){
                      filename = commandLine.getOptionValue("out");
               }
               If(commandLine.hasOption("url")){
                      url = commandLine.getOptionValue("url");
               }
               If(commandLine.hasOption("u")){
                      userId = commandLine.getOptionValue("u");
               }
               If(commandLine.hasOption("p")){
                      password = commandLine.getOptionValue("p");
               }
               //database connection
               Class.forName(DRIVER_CLASS_NAME);
               Connection jdbcConnection = DriverManager.getConnection(url, userId, password);
               IDatabaseConnection connection = new OracleConnection(jdbcConnection,userid);
               If(!StringUtils.isEmpty(tableName)){
                    String[] tableNames = {tableName};
                    IDataSet partialDataSet = connection.createDataSet(tableNames);
                    System.out.println("<<Begin Export>>");
                    XlsDataSet.write(partialDataSet, new FileOutputStream(new File(filename)));
                    System.out.println("<<Finish Export>>");
               } else if(!StringUtils.isEmpty(sql)){
                    QueryDataSet dataSet = new QueryDataSet(connection);
                    dataSet.addTable(FilenameUtils.getBaseName(filename), sql);
                    System.out.println("<<Begin Export>>");
                    XlsDataSet.write(dataSet, new FileOutputStream(new File(filename)));
                    System.out.println("<<Finsh Export>>");
               } else {
                     System.out.println("No data exported.");
               }
         } catch(Exception e){
              e.printStackTrace(System.err);
         }
    }
}

*jar:
commons-cli-1.0.jar
xdb6-11.2.0.3.jar
igv-xmlparserv2-11.2.0.3.jar
dbunit-2.5.1.jar
orai18n-11.2.0.4.jar
ojdbc7-12.1.0.2.0.jar
slf4j-api-1.6.2.jar
poi-ooxml-3.9.jar
poi-3.9.jar
slf4j-log4j12-1.6.2.jar
log4j-1.2.16.jar
commons-lang-2.1.jar
commons-io.1.4.jar
Comments