/** * @return an argv for the CodeGenTool to use when creating tables to export. */ protected String [] getCodeGenArgv(String... extraArgs) { List<String> codeGenArgv = new ArrayList<String>(); if (null != extraArgs) { for (String arg : extraArgs) { codeGenArgv.add(arg); } } codeGenArgv.add("--table"); codeGenArgv.add(getTableName()); codeGenArgv.add("--connect"); codeGenArgv.add(getConnectString()); return codeGenArgv.toArray(new String[0]); }
/** * Create the table definition to export and also inserting one records for * identifying the updates. Issue [SQOOP-2846] */ private void createTableWithInsert() throws SQLException { Connection conn = getConnection(); PreparedStatement statement = conn.prepareStatement(getDropTableStatement(getTableName()), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); try { statement.executeUpdate(); conn.commit(); } finally { statement.close(); } StringBuilder sb = new StringBuilder(); sb.append("CREATE TABLE "); sb.append(getTableName()); sb.append(" (id INT NOT NULL PRIMARY KEY, msg VARCHAR(64)"); sb.append(")"); statement = conn.prepareStatement(sb.toString(), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); try { statement.executeUpdate(); Statement statement2 = conn.createStatement(); String insertCmd = "INSERT INTO " + getTableName() + " (ID,MSG) VALUES(" + 0 + ",'testMsg');"; statement2.execute(insertCmd); conn.commit(); } finally { statement.close(); } }
Connection conn = getConnection(); PreparedStatement statement = conn.prepareStatement( getDropTableStatement(getTableName()), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); try { sb.append(getTableName()); sb.append(" (id INT NOT NULL PRIMARY KEY, msg VARCHAR(64)"); int colNum = 0;
/** Verify that on a given row, a column has a given value. * @param id the id column specifying the row to test. */ private void assertColValForRowId(int id, String colName, Object expectedVal) throws SQLException { Connection conn = getConnection(); LOG.info("Verifying column " + colName + " has value " + expectedVal); PreparedStatement statement = conn.prepareStatement( "SELECT " + colName + " FROM " + getTableName() + " WHERE ID = " + id, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); Object actualVal = null; try { ResultSet rs = statement.executeQuery(); try { rs.next(); actualVal = rs.getObject(1); } finally { rs.close(); } } finally { statement.close(); } if (expectedVal != null && expectedVal instanceof byte[]) { assertArrayEquals((byte[]) expectedVal, (byte[]) actualVal); } else { assertEquals("Got unexpected column value", expectedVal, actualVal); } }