Refine search
@Override public Timestamp withHandle(Handle handle) { final String query = StringUtils.format( "SELECT MAX(%s) FROM %s", tsColumn, table ); return handle .createQuery(query) .map(TimestampMapper.FIRST) .first(); } }
@Override public boolean tableExists(final Handle handle, final String tableName) { return !handle.createQuery("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = :tableName") .bind("tableName", tableName) .map(StringMapper.FIRST) .list() .isEmpty(); }
@Override public int getTaskIdHistoryCount(Optional<String> requestId, Optional<String> deployId, Optional<String> runId, Optional<String> host, Optional<ExtendedTaskState> lastTaskStatus, Optional<Long> startedBefore, Optional<Long> startedAfter, Optional<Long> updatedBefore, Optional<Long> updatedAfter) { final Map<String, Object> binds = new HashMap<>(); final StringBuilder sqlBuilder = new StringBuilder(GET_TASK_ID_HISTORY_COUNT_QUERY); applyTaskIdHistoryBaseQuery(sqlBuilder, binds, requestId, deployId, runId, host, lastTaskStatus, startedBefore, startedAfter, updatedBefore, updatedAfter); final String sql = sqlBuilder.toString(); LOG.trace("Generated sql for task search count: {}, binds: {}", sql, binds); final Query<Integer> query = getHandle().createQuery(sql).mapTo(Integer.class); for (Map.Entry<String, Object> entry : binds.entrySet()) { query.bind(entry.getKey(), entry.getValue()); } return query.first(); }
@Test public void testDefines() throws Exception { handle.attach(Kangaroo.class).weirdInsert("something", "id", "name", 5, "Bouncer"); String name = handle.createQuery("select name from something where id = 5") .map(StringMapper.FIRST) .first(); assertThat(name, equalTo("Bouncer")); }
@Test public void testFluentApi() throws Exception { Map<String, Team> teams = handle.createQuery("select t.name as teamName, " + " t.mascot as mascot, " + " p.name as personName, " + " p.role as role " + "from team t inner join person p on (t.name = p.team)") .map(TeamPersonJoinRow.class) .fold(Maps.<String, Team>newHashMap(), new TeamFolder()); assertThat(teams, equalTo(expected)); }
@Test public void testDefines() throws Exception { handle.attach(Kangaroo.class).weirdInsert("something", "id", "name", 5, "Bouncer"); String name = handle.createQuery("select name from something where id = 5") .mapTo(String.class) .first(); assertThat(name, equalTo("Bouncer")); }
public Optional<WebUser> getUser(int id) { List<WebUser.Project> projectDefinitions; try (Handle handle = dbi.open()) { final Map<String, Object> data = handle .createQuery("SELECT id, name, email, read_only, created_at FROM web_user WHERE id = :id") .bind("id", id).first(); if (data == null) { return Optional.empty(); } String name = (String) data.get("name"); String email = (String) data.get("email"); Timestamp createdAt = (Timestamp) data.get("created_at"); id = (int) data.get("id"); projectDefinitions = getUserApiKeys(handle, id); return Optional.of(new WebUser(id, email, name, (Boolean) data.get("read_only"), createdAt.toInstant(), generateIntercomHash(email), projectDefinitions)); } }
@Test public void testAPIWorks() throws Exception { Spiffy s = SqlObjectBuilder.onDemand(dbi, Spiffy.class); s.insert(7, "Bill"); String bill = handle.createQuery("select name from something where id = 7").map(StringMapper.FIRST).first(); assertEquals("Bill", bill); }
@Test public void testFluentApi() throws Exception { Map<String, Team> teams = handle.createQuery("select t.name as teamName, " + " t.mascot as mascot, " + " p.name as personName, " + " p.role as role " + "from team t inner join person p on (t.name = p.team)") .map(TeamPersonJoinRow.class) .fold(Maps.<String, Team>newHashMap(), new TeamFolder()); assertThat(teams, equalTo(expected)); }
@Test public void testAPIWorks() throws Exception { Spiffy s = SqlObjectBuilder.onDemand(dbi, Spiffy.class); s.insert(7, "Bill"); String bill = handle.createQuery("select name from something where id = 7").mapTo(String.class).first(); assertEquals("Bill", bill); }
@Override public Optional<StatusType> withHandle(Handle handle) throws Exception { byte[] res = handle.createQuery( StringUtils.format("SELECT status_payload FROM %s WHERE id = :id", entryTable) ) .bind("id", entryId) .map(ByteArrayMapper.FIRST) .first(); return Optional.fromNullable( res == null ? null : jsonMapper.readValue(res, statusType) ); } }
@Override public boolean tableExists(final Handle handle, final String tableName) { return !handle.createQuery( "SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = 'public' AND tablename ILIKE :tableName" ) .bind("tableName", tableName) .map(StringMapper.FIRST) .list() .isEmpty(); }
public Optional<WebUser> getUserByEmail(String email) { List<WebUser.Project> projectDefinitions; try (Handle handle = dbi.open()) { final Map<String, Object> data = handle .createQuery("SELECT id, name, read_only, created_at FROM web_user WHERE lower(email) = lower(:email)") .bind("email", email).first(); if (data == null) { return Optional.empty(); } String name = (String) data.get("name"); int id = (int) data.get("id"); boolean readOnly = (boolean) data.get("read_only"); Timestamp createdAt = (Timestamp) data.get("created_at"); projectDefinitions = getUserApiKeys(handle, id); return Optional.of(new WebUser(id, email, name, readOnly, createdAt.toInstant(), generateIntercomHash(email), projectDefinitions)); } }
@Test public void testBaz() throws Exception { Wombat wombat = handle.attach(Wombat.class); wombat.insert(new Something(7, "Henning")); String name = handle.createQuery("select name from something where id = 7") .map(StringMapper.FIRST) .first(); assertThat(name, equalTo("Henning")); }
@Test public void testBindConstantValue() throws Exception { UsesBatching b = handle.attach(UsesBatching.class); List<Integer> ids = Arrays.asList(1, 2, 3, 4, 5); b.withConstantValue(ids, "Johan"); assertThat(b.size(), equalTo(5)); List<String> names = handle.createQuery("select distinct name from something") .map(StringMapper.FIRST) .list(); assertThat(names, equalTo(Arrays.asList("Johan"))); }
@Test public void testBaz() throws Exception { Wombat wombat = handle.attach(Wombat.class); wombat.insert(new Something(7, "Henning")); String name = handle.createQuery("select name from something where id = 7") .mapTo(String.class) .first(); assertThat(name, equalTo("Henning")); }
@Override public Optional<EntryType> withHandle(Handle handle) throws Exception { byte[] res = handle.createQuery( StringUtils.format("SELECT payload FROM %s WHERE id = :id", entryTable) ) .bind("id", entryId) .map(ByteArrayMapper.FIRST) .first(); return Optional.fromNullable( res == null ? null : jsonMapper.readValue(res, entryType) ); } }
@Override public List<Pair<String, String>> withHandle(Handle handle) { return handle .createQuery( buildLookupQuery(table, filter, keyColumn, valueColumn) ).map( new ResultSetMapper<Pair<String, String>>() { @Override public Pair<String, String> map( final int index, final ResultSet r, final StatementContext ctx ) throws SQLException { return new Pair<>(r.getString(keyColumn), r.getString(valueColumn)); } } ).list(); } }
@Test public void testBaz() throws Exception { Kangaroo wombat = handle.attach(Kangaroo.class); wombat.insert(new Something(7, "Henning")); String name = handle.createQuery("select name from something where id = 7") .map(StringMapper.FIRST) .first(); assertThat(name, equalTo("Henning")); }
@Test public void testOnList() throws Exception { h.registerContainerFactory(new ImmutableListContainerFactory()); h.execute("insert into something (id, name) values (1, 'Coda')"); h.execute("insert into something (id, name) values (2, 'Brian')"); ImmutableList<String> rs = h.createQuery("select name from something order by id") .map(StringMapper.FIRST) .list(ImmutableList.class); assertThat(rs, equalTo(ImmutableList.of("Coda", "Brian"))); }