Example usage for org.apache.commons.dbutils.handlers AbstractKeyedHandler AbstractKeyedHandler

List of usage examples for org.apache.commons.dbutils.handlers AbstractKeyedHandler AbstractKeyedHandler

Introduction

In this page you can find the example usage for org.apache.commons.dbutils.handlers AbstractKeyedHandler AbstractKeyedHandler.

Prototype

AbstractKeyedHandler

Source Link

Usage

From source file:javasnack.flywaydb.FlywaydbDemo3Test.java

@Test
public void usingPlaceholderAndEncoding() throws Exception {
    Properties properties = new Properties();
    properties.setProperty("flyway.user", "sa");
    properties.setProperty("flyway.password", "");
    properties.setProperty("flyway.url", "jdbc:h2:mem:flywaydb_demo3;DB_CLOSE_DELAY=-1");
    properties.setProperty("flyway.driver", "org.h2.Driver");

    final Flyway flyway = new Flyway();
    flyway.configure(properties);//  w  ww.j a v  a 2s.  c om
    flyway.setLocations("flywaydbdemos/demo3");

    flyway.setEncoding("UTF-8");
    Map<String, String> placeholders = new HashMap<>();
    placeholders.put("L1", "abc");
    placeholders.put("L2", "def");
    placeholders.put("L3", "abc");
    placeholders.put("L4", "def");
    flyway.setPlaceholders(placeholders);

    MigrationInfoService mis = flyway.info();
    assertEquals(mis.all().length, 3);
    for (MigrationInfo mi : mis.all()) {
        System.out.println(mi.getVersion());
        System.out.println(mi.getDescription());
        System.out.println(mi.getState());
        System.out.println(mi.getType());

    }
    // 3 migrations (V1, V1.1, V1.2) must be pending status.
    assertEquals(mis.pending().length, 3);
    // no version applied.
    assertEquals(mis.applied().length, 0);
    // no current version.
    MigrationInfo mi = mis.current();
    assertNull(mi);

    // migrate to V1.1
    flyway.setTarget(MigrationVersion.fromVersion("1.1"));
    flyway.migrate();
    mis = flyway.info();
    assertEquals(mis.all().length, 3);
    // no pending, V1.2 -> "ABOVE_TARGET".
    assertEquals(mis.pending().length, 0);
    // V1, V1.1, V1.2 were applied.
    assertEquals(mis.applied().length, 2);
    for (MigrationInfo _mi : mis.all()) {
        System.out.println(_mi.getVersion());
        System.out.println(_mi.getDescription());
        System.out.println(_mi.getState());
        System.out.println(_mi.getType());

    }
    mi = mis.current();
    assertEquals(mi.getVersion().getVersion(), "1.1");
    assertEquals(mi.getDescription(), "add t1 hobby column");
    assertEquals(mi.getState(), MigrationState.SUCCESS);

    // change placeholder prefix and suffix.
    flyway.setPlaceholderPrefix("%{%");
    flyway.setPlaceholderSuffix("%}%");

    // migrate to latest version
    flyway.setTarget(MigrationVersion.LATEST);
    flyway.migrate();
    mis = flyway.info();
    assertEquals(mis.all().length, 3);
    assertEquals(mis.pending().length, 0);
    assertEquals(mis.applied().length, 3);
    mi = mis.current();
    assertEquals(mi.getVersion().getVersion(), "1.2");
    assertEquals(mi.getDescription(), "insert t1 data2");
    assertEquals(mi.getState(), MigrationState.SUCCESS);

    // select and validate records.
    QueryRunner run = new QueryRunner();
    ResultSetHandler<Map<Long, T1>> h = new AbstractKeyedHandler<Long, T1>() {
        @Override
        protected T1 createRow(ResultSet rs) throws SQLException {
            T1 row = new T1();
            row.id = rs.getLong("id");
            row.name = rs.getString("name");
            row.age = rs.getInt("age");
            row.hobby = rs.getString("hobby");
            return row;
        }

        @Override
        protected Long createKey(ResultSet rs) throws SQLException {
            return rs.getLong("id");
        }
    };
    Map<Long, T1> found = run.query(conn, "select id, name, age, hobby from abc_def_t1", h);
    assertEquals(found.size(), 4);
    T1 jon = found.get(1L);
    assertEquals(jon.name, "");
    assertEquals(jon.hobby, "");
    T1 alice = found.get(3L);
    assertEquals(alice.name, "alice");
    assertEquals(alice.hobby, "swimming");
}

From source file:javasnack.flywaydb.FlywaydbDemo1Test.java

@Test
public void typicalMigrationFlow() throws Exception {
    Properties properties = new Properties();
    properties.setProperty("flyway.user", "sa");
    properties.setProperty("flyway.password", "");
    properties.setProperty("flyway.url", "jdbc:h2:mem:flywaydb_demo1;DB_CLOSE_DELAY=-1");
    properties.setProperty("flyway.driver", "org.h2.Driver");

    final Flyway flyway = new Flyway();
    flyway.configure(properties);//from  w w w.  ja v  a  2  s.co  m
    assertNotNull(flyway.getDataSource());
    flyway.setLocations("flywaydbdemos/demo1");
    // not initialized -> no target schemas.
    assertEquals(flyway.getSchemas().length, 0);

    flyway.init();
    assertEquals(flyway.getSchemas().length, 1);
    assertEquals(flyway.getSchemas()[0], "PUBLIC");
    assertEquals(flyway.getTable(), "schema_version");

    MigrationInfoService mis = flyway.info();
    assertEquals(mis.all().length, 4);
    for (MigrationInfo mi : mis.all()) {
        System.out.println(mi.getVersion());
        System.out.println(mi.getDescription());
        System.out.println(mi.getState());
        System.out.println(mi.getType());

    }
    // 3 migrations (V1.1, V1.2, V1.3) must be pending status.
    assertEquals(mis.pending().length, 3);
    // initialized version (V1) applied.
    assertEquals(mis.applied().length, 1);
    // current version is initialized version (V1).
    MigrationInfo mi = mis.current();
    assertEquals(mi.getVersion().getVersion(), "1");
    assertEquals(mi.getDescription(), flyway.getInitDescription());
    assertEquals(mi.getState(), MigrationState.SUCCESS);

    // migrate to V1.2
    flyway.setTarget(MigrationVersion.fromVersion("1.2"));
    flyway.migrate();
    mis = flyway.info();
    assertEquals(mis.all().length, 4);
    // no pending, V1.3 -> "ABOVE_TARGET".
    assertEquals(mis.pending().length, 0);
    // V1, V1.1, V1.2 were applied.
    assertEquals(mis.applied().length, 3);
    for (MigrationInfo _mi : mis.all()) {
        System.out.println(_mi.getVersion());
        System.out.println(_mi.getDescription());
        System.out.println(_mi.getState());
        System.out.println(_mi.getType());

    }
    mi = mis.current();
    assertEquals(mi.getVersion().getVersion(), "1.2");
    assertEquals(mi.getDescription(), "add t1 hobby column");
    assertEquals(mi.getState(), MigrationState.SUCCESS);

    // migrate to latest version
    flyway.setTarget(MigrationVersion.LATEST);
    flyway.migrate();
    mis = flyway.info();
    assertEquals(mis.all().length, 4);
    assertEquals(mis.pending().length, 0);
    assertEquals(mis.applied().length, 4);
    mi = mis.current();
    assertEquals(mi.getVersion().getVersion(), "1.3");
    assertEquals(mi.getDescription(), "insert t1 data2");
    assertEquals(mi.getState(), MigrationState.SUCCESS);

    // select and validate records.
    QueryRunner run = new QueryRunner();
    ResultSetHandler<Map<Long, T1>> h = new AbstractKeyedHandler<Long, T1>() {
        @Override
        protected T1 createRow(ResultSet rs) throws SQLException {
            T1 row = new T1();
            row.id = rs.getLong("id");
            row.name = rs.getString("name");
            row.age = rs.getInt("age");
            row.hobby = rs.getString("hobby");
            return row;
        }

        @Override
        protected Long createKey(ResultSet rs) throws SQLException {
            return rs.getLong("id");
        }
    };
    Map<Long, T1> found = run.query(conn, "select id, name, age, hobby from t1", h);
    assertEquals(found.size(), 4);
    T1 jon = found.get(1L);
    assertEquals(jon.name, "jon");
    assertEquals(jon.hobby, "");
    T1 alice = found.get(3L);
    assertEquals(alice.name, "alice");
    assertEquals(alice.hobby, "swimming");
}