/** * Will create a newInstance of JdbcMapperBuilder on the specified target class. * @param target the target class * @param <T> the jdbcMapper target type * @return the builder */ public <T> JdbcMapperBuilder<T> newBuilder(final Class<T> target) { return newBuilder((Type)target); }
/** * Will create a newInstance of JdbcMapperBuilder on the specified target class. * @param target the target class * @param <T> the jdbcMapper target type * @return the builder */ public <T> JdbcMapperBuilder<T> newBuilder(final Class<T> target) { return newBuilder((Type)target); }
/** * Will create a newInstance of JdbcMapperBuilder on the type T specified by the typeReference. * @param target the typeReference * @param <T> the jdbcMapper target type * @return the builder */ public <T> JdbcMapperBuilder<T> newBuilder(final TypeReference<T> target) { return newBuilder(target.getType()); }
/** * Will create a newInstance of JdbcMapperBuilder on the specified type. * @param target the type * @param <T> the jdbcMapper target type * @return the builder */ public <T> JdbcMapperBuilder<T> newBuilder(final Type target) { ClassMeta<T> classMeta = getClassMeta(target); return newBuilder(classMeta); }
@Override public ContextualSourceFieldMapper<ResultSet, T> newInstance(MapperKey<JdbcColumnKey> jdbcColumnKeyMapperKey) { final JdbcMapperBuilder<T> builder = newBuilder(classMeta); for(JdbcColumnKey key : jdbcColumnKeyMapperKey.getColumns()) { builder.addMapping(key); } return builder.newSourceFieldMapper(); } }
@Override public SetRowMapper<ResultSet,ResultSet,T,SQLException> newInstance(MapperKey<JdbcColumnKey> jdbcColumnKeyMapperKey) { final JdbcMapperBuilder<T> builder = newBuilder(classMeta); for(JdbcColumnKey key : jdbcColumnKeyMapperKey.getColumns()) { builder.addMapping(key); } return builder.mapper(); } }
@Test public void testTupleJoinNoAsm() throws Exception { validateBuilder(noAsmJdbcMapperFactory.newBuilder(new TypeReference<Tuple2<Person, List<Person>>>() { })); }
@Test public void testTupleJoinNoAsmInverted() throws Exception { validateBuilderInverted(noAsmJdbcMapperFactory.newBuilder(new TypeReference<Tuple2<List<Person>, Person>>() { })); }
@Test public void test501ZoneId() throws MappingException, SQLException { test501(JdbcMapperFactoryHelper.asm().newBuilder(C501.class)); test501(JdbcMapperFactoryHelper.noAsm().newBuilder(C501.class)); }
@Test public void testCanCreateTypeFromAmbiguousWithType() throws Exception { JdbcMapperBuilder<MyObjectAmbiguity> builder = JdbcMapperFactoryHelper.asm().newBuilder(MyObjectAmbiguity.class); builder.addMapping("prop", 1, Types.VARCHAR); JdbcMapper<MyObjectAmbiguity> mapper = builder.mapper(); ResultSet rs = mock(ResultSet.class); when(rs.getString(1)).thenReturn("val"); assertEquals("val", mapper.map(rs).prop.value); } private void testMatchConstructor(JdbcMapperBuilder<MyObject> builder)
@Test public void testAsmFailureOnmapper() throws NoSuchFieldException, IllegalAccessException { JdbcMapperBuilder<DbObject> builder = JdbcMapperFactoryHelper.noFailOnAsm().reflectionService(new DefaultReflectionService(newAsmFactoryFailsOnmapper())).newBuilder(DbObject.class); final JdbcMapper<DbObject> mapper = builder.mapper(); Field f = mapper.getClass().getDeclaredField("setRowMapper"); f.setAccessible(true); Object subMapper = f.get(mapper); assertEquals(StaticSetRowMapper.class, subMapper.getClass()); }
@Test public void testIndexedBoxedPrimitivesWithFieldAccess() throws Exception { JdbcMapperBuilder<DbBoxedPrimitiveObject> builder = JdbcMapperFactoryHelper.asm().newBuilder(DbBoxedPrimitiveObject.class); testIndexedPrimitives(builder); }
@Test public void testIndexedPrimitivesWithFieldAccessNullValues() throws Exception { JdbcMapperBuilder<DbBoxedPrimitiveObject> builder = JdbcMapperFactoryHelper.asm().newBuilder(DbBoxedPrimitiveObject.class); testIndexedPrimitivesWithNull(builder); }
@Test public void testIndexedPrimitivesWithConstructorAccess() throws Exception { JdbcMapperBuilder<DbFinalPrimitiveObject> builder = JdbcMapperFactoryHelper.asm().newBuilder(DbFinalPrimitiveObject.class); testIndexedPrimitives(builder); }
@Test public void testIndexedEnumOrdinal() throws Exception { JdbcMapperBuilder<DbEnumObject> builder = JdbcMapperFactoryHelper.asm().newBuilder(DbEnumObject.class); builder.addMapping("val",1, Types.INTEGER); JdbcMapper<DbEnumObject> mapper = builder.mapper(); ResultSet rs = mock(ResultSet.class); when(rs.getInt(1)).thenReturn(2); assertEquals(DbObject.Type.type3, mapper.map(rs).getVal()); }
@Test public void jdbcMapperExtrapolateGetterFromConstructor() { JdbcMapperFactory.newInstance().newBuilder(FooC.class).addMapping("bar").mapper(); JdbcMapperFactory.newInstance().newBuilder(Crux.class).addMapping("foo").mapper(); }
@Override public void handle(PreparedStatement t) throws Exception { ResultSet rs = t.executeQuery(); final JdbcMapper<DbListOfString> mapper = JdbcMapperFactoryHelper.asm().useAsm(asm).newBuilder( DbListOfString.class).addKey("id").addKey("objects_0") .addMapping(rs.getMetaData()).mapper(); List<DbListOfString> strings = mapper.forEach(rs, new ListCollector<DbListOfString>()).getList(); assertEquals(1, strings.size()); assertEquals(12, strings.get(0).getId()); assertEquals(1, strings.get(0).getObjects().size()); } }
@Test public void setChangeFieldMapperErrorHandler() throws NoSuchMethodException, SecurityException, IOException { JdbcMapperBuilder<DbObject> builder = JdbcMapperFactoryHelper .asm() .fieldMapperErrorHandler(new LogFieldMapperErrorHandler<JdbcColumnKey>()) .newBuilder(DbObject.class); builder.addMapping("id"); }
@Test public void testConstructorProp1Prop2Prop3() throws Exception { JdbcMapperBuilder<DbConstructorObject> builder = JdbcMapperFactoryHelper.asm().newBuilder(DbConstructorObject.class); builder.addMapping("prop1"); builder.addMapping("prop2"); try { builder.addMapping("prop3"); fail("Expect exception"); } catch(Exception e) { // expected } }
@Test public void test544() { final String VALUES_VAL = "values_val"; final String VALUES = "values"; JdbcColumnKey valuesKeys = new JdbcColumnKey(VALUES, 1, Types.VARCHAR); JdbcMapperFactory .newInstance() .addAlias(VALUES, VALUES_VAL) .newBuilder(C544.class) .addMapping(valuesKeys) .mapper(); }