copy code from old project
This commit is contained in:
parent
4ccaf7b5a8
commit
1cb878bdb2
@ -22,11 +22,15 @@ dependencies {
|
||||
|
||||
// This dependency is used by the application.
|
||||
implementation 'com.google.guava:guava:31.0.1-jre'
|
||||
|
||||
//jdbc drivers
|
||||
implementation 'org.postgresql:postgresql:42.5.0'
|
||||
implementation 'net.sf.jt400:jt400:11.0'
|
||||
}
|
||||
|
||||
application {
|
||||
// Define the main class for the application.
|
||||
mainClass = 'jrunner.App'
|
||||
mainClass = 'jrunner.jrunner'
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
|
@ -1,14 +1,288 @@
|
||||
/*
|
||||
* This Java source file was generated by the Gradle 'init' task.
|
||||
*/
|
||||
package jrunner;
|
||||
import java.sql.*;
|
||||
import java.util.*;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path ;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
public class jrunner {
|
||||
public String getGreeting() {
|
||||
return "Hello World!";
|
||||
}
|
||||
|
||||
//static final String QUERY = "SELECT * from rlarp.osm LIMIT 100";
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(new jrunner().getGreeting());
|
||||
|
||||
String scu = "";
|
||||
String scn = "";
|
||||
String scp = "";
|
||||
String dcu = "";
|
||||
String dcn = "";
|
||||
String dcp = "";
|
||||
String sq = "";
|
||||
String dt = "";
|
||||
Boolean trim = true;
|
||||
Integer r = 0;
|
||||
Integer t = 0;
|
||||
String sql = "";
|
||||
String nr = "";
|
||||
String nc = "";
|
||||
String nl = "\n";
|
||||
String msg = "";
|
||||
Connection scon = null;
|
||||
Connection dcon = null;
|
||||
Statement stmt = null;
|
||||
Statement stmtd = null;
|
||||
ResultSet rs = null;
|
||||
String[] getv = null;
|
||||
Integer cols = null;
|
||||
String[] dtn = null;
|
||||
|
||||
msg = "Help:";
|
||||
msg = msg + nl + "jrunner version 0.28";
|
||||
msg = msg + nl + "-scu source jdbc url";
|
||||
msg = msg + nl + "-scn source username";
|
||||
msg = msg + nl + "-scp source passowrd";
|
||||
msg = msg + nl + "-dcu destination jdbc url";
|
||||
msg = msg + nl + "-dcn destination username";
|
||||
msg = msg + nl + "-dcp destination passowrd";
|
||||
msg = msg + nl + "-sq path to source query";
|
||||
msg = msg + nl + "-dt fully qualified name of destination table";
|
||||
msg = msg + nl + "-t trim text";
|
||||
msg = msg + nl + "--help info";
|
||||
|
||||
//---------------------------------------parse args into variables-------------------------------------------------
|
||||
|
||||
for (int i = 0; i < args.length; i = i +1 ){
|
||||
switch (args[i]) {
|
||||
//source connection string
|
||||
case "-scu":
|
||||
scu = args[i+1];
|
||||
break;
|
||||
//source username
|
||||
case "-scn":
|
||||
scn = args[i+1];
|
||||
break;
|
||||
//source password
|
||||
case "-scp":
|
||||
scp = args[i+1];
|
||||
break;
|
||||
//destination connection string
|
||||
case "-dcu":
|
||||
dcu = args[i+1];
|
||||
break;
|
||||
//destination username
|
||||
case "-dcn":
|
||||
dcn = args[i+1];
|
||||
break;
|
||||
//destination password
|
||||
case "-dcp":
|
||||
dcp = args[i+1];
|
||||
break;
|
||||
//source query path
|
||||
case "-sq":
|
||||
try {
|
||||
//sq = Files.readAllLines(Paths.get(args[i+1]));
|
||||
sq = Files.readString(Paths.get(args[i+1]));
|
||||
}
|
||||
catch (Exception e) {
|
||||
//System.out.println(nl + "error reasing source sql file: " + printStackTrace());
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
//destination table name
|
||||
case "-dt":
|
||||
dt = args[i+1];
|
||||
break;
|
||||
case "-t":
|
||||
trim = true;
|
||||
break;
|
||||
case "-v":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
case "--version":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
case "--help":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
case "-help":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
case "-h":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
case "\\?":
|
||||
System.out.println(msg);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println(scu);
|
||||
System.out.println(scn);
|
||||
System.out.println(dcu);
|
||||
System.out.println(dcn);
|
||||
System.out.println(sq);
|
||||
System.out.println(dt);
|
||||
|
||||
//return;
|
||||
|
||||
//force regstration
|
||||
try {
|
||||
Class.forName("com.ibm.as400.access.AS400JDBCDriver");
|
||||
} catch (ClassNotFoundException cnf) {
|
||||
System.out.println("The AS400 JDBC driver did not load");
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
//-------------------------------------------establish connections-------------------------------------------------
|
||||
//source database
|
||||
try {
|
||||
scon = DriverManager.getConnection(scu, scn, scp);
|
||||
} catch (SQLException e) {
|
||||
System.out.println("issue connecting to source:");
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
//destination database
|
||||
try {
|
||||
dcon = DriverManager.getConnection(dcu, dcn, dcp);
|
||||
} catch (SQLException e) {
|
||||
System.out.println("issue connecting to desctination:");
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
//----------------------------------------open resultset------------------------------------------------------------
|
||||
try {
|
||||
stmt = scon.createStatement();
|
||||
rs = stmt.executeQuery(sq);
|
||||
//while (rs.next()) {
|
||||
// System.out.println(rs.getString("x"));
|
||||
//}
|
||||
} catch (SQLException e) {
|
||||
System.out.println("issue retrieving rows from source:");
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
//---------------------------------------build meta---------------------------------------------------------------
|
||||
try {
|
||||
cols = rs.getMetaData().getColumnCount();
|
||||
System.out.println("number of cols: " + cols);
|
||||
getv = new String[cols + 1];
|
||||
dtn = new String[cols + 1];
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
try {
|
||||
for (int i = 1; i <= cols; i++){
|
||||
dtn[i] = rs.getMetaData().getColumnTypeName(i);
|
||||
//System.out.println(dtn[i]);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
try {
|
||||
while (rs.next()) {
|
||||
r++;
|
||||
t++;
|
||||
nr = "";
|
||||
for (int i = 1; i <= cols; i++){
|
||||
nc = rs.getString(i);
|
||||
Boolean dnull = false;
|
||||
if (rs.wasNull()) {
|
||||
nc = "NULL";
|
||||
dnull = true;
|
||||
} else {
|
||||
switch (dtn[i]){
|
||||
case "VARCHAR":
|
||||
nc = rs.getString(i).replace("'","''");
|
||||
if (trim) { nc = nc.trim();}
|
||||
nc = "'" + nc + "'";
|
||||
break;
|
||||
case "CLOB":
|
||||
nc = rs.getString(i).replace("'","''");
|
||||
if (trim) { nc = nc.trim();}
|
||||
nc = "'" + nc + "'";
|
||||
break;
|
||||
case "CHAR":
|
||||
nc = rs.getString(i).replace("'","''");
|
||||
if (trim) { nc = nc.trim();}
|
||||
nc = "'" + nc + "'";
|
||||
break;
|
||||
case "DATE":
|
||||
nc = "'" + rs.getString(i) + "'";
|
||||
if (nc == "'1/1/0001 12:00:00 AM'") {
|
||||
nc = "NULL";
|
||||
}
|
||||
break;
|
||||
case "TIME":
|
||||
nc = "'" + rs.getString(i).replace("'","''") + "'";
|
||||
break;
|
||||
case "BIGINT":
|
||||
nc = rs.getString(i);
|
||||
default:
|
||||
if (rs.getString(i) != "") {
|
||||
nc = rs.getString(i);
|
||||
}
|
||||
else {
|
||||
nc = "NULL";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i != 1){
|
||||
nr = nr + ",";
|
||||
}
|
||||
nr = nr + nc;
|
||||
}
|
||||
//System.out.println(nr);
|
||||
if (sql!="") {
|
||||
sql = sql + ",";
|
||||
}
|
||||
sql = sql + "(" + nr + ")";
|
||||
if (r == 250){
|
||||
r = 0;
|
||||
sql = "INSERT INTO " + dt + " VALUES " + "\n" + sql;
|
||||
//System.out.println(sql);
|
||||
try {
|
||||
stmtd = dcon.createStatement();
|
||||
stmtd.executeUpdate(sql);
|
||||
System.out.println(t);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
sql = "";
|
||||
}
|
||||
}
|
||||
sql = "INSERT INTO " + dt + " VALUES " + "\n" + sql;
|
||||
//System.out.println(sql);
|
||||
try {
|
||||
stmtd = dcon.createStatement();
|
||||
stmtd.executeUpdate(sql);
|
||||
System.out.println(t);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
System.exit(0);
|
||||
}
|
||||
//System.out.println(sql);
|
||||
|
||||
//---------------------------------------close connections--------------------------------------------------------
|
||||
try {
|
||||
scon.close();
|
||||
dcon.close();
|
||||
} catch (SQLException e) {
|
||||
System.out.println("issue closing connections");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,6 @@ import static org.junit.jupiter.api.Assertions.*;
|
||||
class AppTest {
|
||||
@Test void appHasAGreeting() {
|
||||
jrunner classUnderTest = new jrunner();
|
||||
assertNotNull(classUnderTest.getGreeting(), "app should have a greeting");
|
||||
//assertNotNull(classUnderTest.getGreeting(), "app should have a greeting");
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user