Skip to content

Commit

Permalink
deprecating passing option builder
Browse files Browse the repository at this point in the history
when assembling command metadata
  • Loading branch information
andrus committed Apr 28, 2024
1 parent d4b6c5b commit 0a1f000
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,9 @@ public class RunQueryCommand extends CommandWithMetadata {

public RunQueryCommand() {
super(CommandMetadata.builder(RunQueryCommand.class)
.addOption(OptionMetadata.builder(KEY_OPTION).valueRequired("property_name"))
.addOption(OptionMetadata.builder(VALUE_OPTION).valueRequired("property_value")).build());
.addOption(OptionMetadata.builder(KEY_OPTION).valueRequired("property_name").build())
.addOption(OptionMetadata.builder(VALUE_OPTION).valueRequired("property_value").build())
.build());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,84 +38,85 @@

public class RunSQLCommand extends CommandWithMetadata {

@Inject
private Provider<DataSourceFactory> dataSourceFactoryProvider;

@Inject
private BootLogger logger;

public RunSQLCommand() {
super(CommandMetadata.builder(RunSQLCommand.class)
.addOption(OptionMetadata.builder("sql").valueRequired("sql_string")).build());
}

@Override
public CommandOutcome run(Cli cli) {

DataSource dataSource = dataSourceFactoryProvider.get().forName("test1");

try (Connection c = dataSource.getConnection()) {
prepareDB(c);

for (String sql : cli.optionStrings("sql")) {
runSELECT(c, sql);
}

} catch (SQLException ex) {
logger.stderr("Error....", ex);
}

return CommandOutcome.succeeded();
}

private void prepareDB(Connection c) throws SQLException {

try {
runUPDATE(c, "CREATE TABLE T1 (ID INT PRIMARY KEY, NAME VARCHAR(200))");
} catch (SQLException ex) {
// see http://db.apache.org/derby/docs/10.8/ref/rrefexcept71493.html
if ("X0Y32".equals(ex.getSQLState())) {
logger.stdout("Table already exists...");
} else {
throw ex;
}
}

runUPDATE(c, "DELETE FROM T1");
runUPDATE(c, "INSERT INTO T1 VALUES (1, 'aa')");
runUPDATE(c, "INSERT INTO T1 VALUES (2, 'bb')");
c.commit();
}

private void runUPDATE(Connection c, String sql) throws SQLException {
logger.stdout("Running update: " + sql);

try (PreparedStatement st = c.prepareStatement(sql)) {
st.executeUpdate();
}
}

private void runSELECT(Connection c, String sql) throws SQLException {
logger.stdout("Running select: " + sql);

try (PreparedStatement st = c.prepareStatement(sql)) {

try (ResultSet rs = st.executeQuery()) {
ResultSetMetaData md = rs.getMetaData();

while (rs.next()) {

StringBuffer line = new StringBuffer();
for (int i = 1; i <= md.getColumnCount(); i++) {
if (i > 1) {
line.append(",");
}
line.append(rs.getObject(i));
}

logger.stdout(line.toString());
}
}
}
}
@Inject
private Provider<DataSourceFactory> dataSourceFactoryProvider;

@Inject
private BootLogger logger;

public RunSQLCommand() {
super(CommandMetadata.builder(RunSQLCommand.class)
.addOption(OptionMetadata.builder("sql").valueRequired("sql_string").build())
.build());
}

@Override
public CommandOutcome run(Cli cli) {

DataSource dataSource = dataSourceFactoryProvider.get().forName("test1");

try (Connection c = dataSource.getConnection()) {
prepareDB(c);

for (String sql : cli.optionStrings("sql")) {
runSELECT(c, sql);
}

} catch (SQLException ex) {
logger.stderr("Error....", ex);
}

return CommandOutcome.succeeded();
}

private void prepareDB(Connection c) throws SQLException {

try {
runUPDATE(c, "CREATE TABLE T1 (ID INT PRIMARY KEY, NAME VARCHAR(200))");
} catch (SQLException ex) {
// see http://db.apache.org/derby/docs/10.8/ref/rrefexcept71493.html
if ("X0Y32".equals(ex.getSQLState())) {
logger.stdout("Table already exists...");
} else {
throw ex;
}
}

runUPDATE(c, "DELETE FROM T1");
runUPDATE(c, "INSERT INTO T1 VALUES (1, 'aa')");
runUPDATE(c, "INSERT INTO T1 VALUES (2, 'bb')");
c.commit();
}

private void runUPDATE(Connection c, String sql) throws SQLException {
logger.stdout("Running update: " + sql);

try (PreparedStatement st = c.prepareStatement(sql)) {
st.executeUpdate();
}
}

private void runSELECT(Connection c, String sql) throws SQLException {
logger.stdout("Running select: " + sql);

try (PreparedStatement st = c.prepareStatement(sql)) {

try (ResultSet rs = st.executeQuery()) {
ResultSetMetaData md = rs.getMetaData();

while (rs.next()) {

StringBuffer line = new StringBuffer();
for (int i = 1; i <= md.getColumnCount(); i++) {
if (i > 1) {
line.append(",");
}
line.append(rs.getObject(i));
}

logger.stdout(line.toString());
}
}
}
}
}

0 comments on commit 0a1f000

Please sign in to comment.