Search in sources :

Example 21 with Something

use of org.jdbi.v3.core.Something in project jdbi by jdbi.

the class TestVavrTupleRowMapperFactoryWithDB method testMapTuple3WithExtraSpecifiedColumn_shouldSucceed.

@Test
public void testMapTuple3WithExtraSpecifiedColumn_shouldSucceed() throws SQLException {
    Handle handle = dbRule.getSharedHandle();
    handle.registerRowMapper(new SomethingMapper());
    handle.configure(TupleMappers.class, c -> c.setColumn(2, "integerValue").setColumn(3, "intValue"));
    Tuple3<Something, Integer, Integer> result = handle.createQuery("select * from something where id = 1").mapTo(new GenericType<Tuple3<Something, Integer, Integer>>() {
    }).findOnly();
    assertThat(result._1).isEqualTo(new Something(1, "eric"));
    assertThat(result._2).isEqualTo(99);
    assertThat(result._3).isEqualTo(100);
}
Also used : SomethingMapper(org.jdbi.v3.core.mapper.SomethingMapper) GenericType(org.jdbi.v3.core.generic.GenericType) Something(org.jdbi.v3.core.Something) Handle(org.jdbi.v3.core.Handle) Test(org.junit.Test)

Example 22 with Something

use of org.jdbi.v3.core.Something in project jdbi by jdbi.

the class TestVavrTupleRowMapperFactoryWithDB method testMapTuple2UsingRegisteredRowMappers_shouldSucceed.

@Test
public void testMapTuple2UsingRegisteredRowMappers_shouldSucceed() throws SQLException {
    Handle handle = dbRule.getSharedHandle();
    handle.registerRowMapper(new SomethingMapper());
    handle.registerRowMapper(SomethingValues.class, (rs, ctx) -> new SomethingValues(rs.getInt("integerValue"), rs.getInt("intValue")));
    Tuple2<Something, SomethingValues> result = handle.createQuery("select * from something where id = 2").mapTo(new GenericType<Tuple2<Something, SomethingValues>>() {
    }).findOnly();
    assertThat(result._1).isEqualTo(new Something(2, "brian"));
    assertThat(result._2).isEqualTo(new SomethingValues(101, 102));
}
Also used : SomethingMapper(org.jdbi.v3.core.mapper.SomethingMapper) GenericType(org.jdbi.v3.core.generic.GenericType) Something(org.jdbi.v3.core.Something) Handle(org.jdbi.v3.core.Handle) Test(org.junit.Test)

Example 23 with Something

use of org.jdbi.v3.core.Something in project jdbi by jdbi.

the class TestVavrTupleRowMapperFactoryWithDB method addData.

@Before
public void addData() {
    Handle handle = dbRule.openHandle();
    handle.createUpdate("insert into something (id, name, integerValue, intValue) values (1, 'eric', 99, 100)").execute();
    handle.createUpdate("insert into something (id, name, integerValue, intValue) values (2, 'brian', 101, 102)").execute();
}
Also used : Handle(org.jdbi.v3.core.Handle) Before(org.junit.Before)

Example 24 with Something

use of org.jdbi.v3.core.Something in project jdbi by jdbi.

the class TestVavrTupleRowMapperFactoryWithDB method testMapTuple2HavingOnlyOneRowMapper_shouldFail.

@Test
public void testMapTuple2HavingOnlyOneRowMapper_shouldFail() throws SQLException {
    final Handle handle = dbRule.getSharedHandle();
    handle.registerRowMapper(new SomethingMapper());
    assertThatThrownBy(() -> handle.createQuery("select * from something where id = 1").mapTo(new GenericType<Tuple2<Something, SomethingValues>>() {
    }).findOnly()).isInstanceOf(NoSuchMapperException.class).hasMessageContaining("SomethingValues");
}
Also used : SomethingMapper(org.jdbi.v3.core.mapper.SomethingMapper) Tuple2(io.vavr.Tuple2) NoSuchMapperException(org.jdbi.v3.core.mapper.NoSuchMapperException) Handle(org.jdbi.v3.core.Handle) Test(org.junit.Test)

Example 25 with Something

use of org.jdbi.v3.core.Something in project jdbi by jdbi.

the class TestVavrTupleRowMapperFactoryWithDB method testMapTuple1UsingRegisteredRowMapper_shouldSucceed.

@Test
public void testMapTuple1UsingRegisteredRowMapper_shouldSucceed() throws SQLException {
    Handle handle = dbRule.getSharedHandle();
    handle.registerRowMapper(new SomethingMapper());
    Tuple1<Something> result = handle.createQuery("select id, name from something where id = 1").mapTo(new GenericType<Tuple1<Something>>() {
    }).findOnly();
    assertThat(result._1).isEqualTo(new Something(1, "eric"));
}
Also used : SomethingMapper(org.jdbi.v3.core.mapper.SomethingMapper) GenericType(org.jdbi.v3.core.generic.GenericType) Something(org.jdbi.v3.core.Something) Handle(org.jdbi.v3.core.Handle) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)170 Something (org.jdbi.v3.core.Something)123 Handle (org.jdbi.v3.core.Handle)80 SomethingMapper (org.jdbi.v3.core.mapper.SomethingMapper)17 Before (org.junit.Before)11 ArrayList (java.util.ArrayList)6 Jdbi (org.jdbi.v3.core.Jdbi)6 HashMap (java.util.HashMap)5 Map (java.util.Map)5 GenericType (org.jdbi.v3.core.generic.GenericType)5 List (java.util.List)4 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)4 H2DatabaseRule (org.jdbi.v3.core.rule.H2DatabaseRule)4 Rule (org.junit.Rule)4 Connection (java.sql.Connection)3 LinkedHashMap (java.util.LinkedHashMap)3 Collector (java.util.stream.Collector)3 Collectors.toList (java.util.stream.Collectors.toList)3 JdbcDataSource (org.h2.jdbcx.JdbcDataSource)3 NoSuchMapperException (org.jdbi.v3.core.mapper.NoSuchMapperException)3