public void addColumnProperties(JdbcMapperFactory mapperFactory) { for(ColumnMeta columnMeta : columnMetas) { mapperFactory.addColumnProperty(columnMeta.getColumn(), SqlTypeColumnProperty.of(columnMeta.getSqlType())); if (columnMeta.isKey()) { mapperFactory.addColumnProperty(columnMeta.getColumn(), KeyProperty.DEFAULT); } } }
public void addColumnProperties(JdbcMapperFactory mapperFactory) { for(ColumnMeta columnMeta : columnMetas) { mapperFactory.addColumnProperty(columnMeta.getColumn(), SqlTypeColumnProperty.of(columnMeta.getSqlType())); if (columnMeta.isKey()) { mapperFactory.addColumnProperty(columnMeta.getColumn(), KeyProperty.DEFAULT); } } }
@Test public void testBigInteger() throws Exception { BigDecimal bg = new BigDecimal("314"); when(resultSet.getBigDecimal(1)).thenReturn(bg); Getter<ResultSet, BigInteger> getter = factory.newGetter(BigInteger.class, key(Types.DECIMAL), IDENTITY.properties()); assertEquals(bg.toBigInteger(), getter.get(resultSet)); reset(resultSet); when(resultSet.getBigDecimal(1)).thenReturn(null); assertNull(getter.get(resultSet)); reset(resultSet); getter = factory.newGetter(BigInteger.class, key(Types.VARCHAR), IDENTITY.properties()); when(resultSet.getString(1)).thenReturn("314"); assertEquals(bg.toBigInteger(), getter.get(resultSet)); reset(resultSet); when(resultSet.getString(1)).thenReturn(null); assertNull(getter.get(resultSet)); reset(resultSet); getter = factory.newGetter(BigInteger.class, key(Types.DECIMAL), IDENTITY.add(SqlTypeColumnProperty.of(Types.VARCHAR)).properties()); when(resultSet.getString(1)).thenReturn("314"); assertEquals(bg.toBigInteger(), getter.get(resultSet)); reset(resultSet); when(resultSet.getString(1)).thenReturn(null); assertNull(getter.get(resultSet)); }
private QueryPreparer<T> getQueryPreparer(SQLStatement<?> sqlStatement, SfmBind annotation, Class<?> aClass) { QueryPreparerKey key = new QueryPreparerKey(sqlStatement.getContext().getRawSql(), aClass); QueryPreparer<T> queryPreparer = cache.get(key); if (queryPreparer == null) { NamedSqlQuery parse = NamedSqlQuery.parse(sqlStatement.getContext().getRawSql()); JdbcMapperFactory jdbcMapperFactory = JdbcMapperFactory .newInstance(); for (SqlType col : annotation.sqlTypes()) { jdbcMapperFactory.addColumnProperty(col.name(), SqlTypeColumnProperty.of(col.type())); } queryPreparer = jdbcMapperFactory.<T>from(aClass).to(parse); QueryPreparer<T> cachedQP = cache.putIfAbsent(key, queryPreparer); if (cachedQP != null) { queryPreparer = cachedQP; } } return queryPreparer; } }
@Test public void testBigDecimal() throws Exception { BigDecimal bg = new BigDecimal("3.14"); when(resultSet.getBigDecimal(1)).thenReturn(bg); Getter<ResultSet, BigDecimal> getter = factory.newGetter(BigDecimal.class, key(Types.DECIMAL), IDENTITY.properties()); assertEquals(bg, getter.get(resultSet)); reset(resultSet); when(resultSet.getBigDecimal(1)).thenReturn(null); assertNull(getter.get(resultSet)); reset(resultSet); getter = factory.newGetter(BigDecimal.class, key(Types.VARCHAR), IDENTITY.properties()); when(resultSet.getString(1)).thenReturn("3.14"); assertEquals(bg, getter.get(resultSet)); reset(resultSet); when(resultSet.getString(1)).thenReturn(null); assertNull(getter.get(resultSet)); reset(resultSet); getter = factory.newGetter(BigDecimal.class, key(Types.DECIMAL), IDENTITY.add(SqlTypeColumnProperty.of(Types.VARCHAR)).properties()); when(resultSet.getString(1)).thenReturn("3.14"); assertEquals(bg, getter.get(resultSet)); reset(resultSet); when(resultSet.getString(1)).thenReturn(null); assertNull(getter.get(resultSet)); }