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 |
投稿 >