/*
* Copyright 2007 - 2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.sf.jailer.api_example;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import net.sf.jailer.api.Importer;
import net.sf.jailer.api.Subsetter;
import net.sf.jailer.configuration.Configuration;
import net.sf.jailer.database.BasicDataSource;
import net.sf.jailer.subsetting.ScriptFormat;
/**
* Jailer API Example. <br>
*
* Extracts some data from the "demo-scott" database
* and imports it into another database "demo-scott-subset".
*/
public class APIExample {
// JDBC connection pool size
private static final int POOL_SIZE = 10;
// The subsetter
private static Subsetter subsetter =
new Subsetter(
new BasicDataSource(
"org.h2.Driver", "jdbc:h2:demo-scott", "sa", "",
POOL_SIZE,
new File("lib/h2-1.3.160.jar")),
null,
APIExample.class.getResource("Demo-Scott"),
APIExample.class.getResource("Demo-Scott.csv"),
ScriptFormat.SQL);
// The importer
private static Importer importer =
new Importer(
new BasicDataSource(
"org.h2.Driver", "jdbc:h2:demo-scott-subset", "sa", "",
10,
new File("lib/h2-1.3.160.jar")));
/**
* Exports data related with employee "SCOTT"
* and imports it into another database.
*/
public static void main(String[] args) throws SQLException, IOException {
File exportScriptFile = Configuration.getInstance().createTempFile();
subsetter.setUpsertOnly(true); // overwrite previous data
subsetter.execute("NAME='SCOTT'", exportScriptFile);
importer.execute(exportScriptFile);
exportScriptFile.delete();
}
}