@Override public String toString() { return "ColumnData [columnName=" + columnName + ", value=" + value + ", dataType=" + JDBCType.valueOf(dataType) + "]"; } }
@Before public void setup() { value = new ColumnData(COLUMN_NAME, VALUE, DATA_TYPE.getVendorTypeNumber()); }
public JavaSqlTypes() { // Load default type mappings final TypeMap typeMap = new TypeMap(); javaSqlTypeMap = new HashMap<>(); for (final SQLType sqlType: JDBCType.values()) { final Integer sqlTypeInt = sqlType.getVendorTypeNumber(); final JavaSqlTypeGroup sqlTypeGroup = JavaSqlTypeGroup .valueOf(sqlTypeInt); final Class<?> mappedClass = typeMap.get(sqlType.getName()); final JavaSqlType javaSqlType = new JavaSqlType(sqlType, mappedClass, sqlTypeGroup); javaSqlTypeMap.put(sqlTypeInt, javaSqlType); } }
public String sqlName() { return jdbcType.getName(); }
statement.registerOutParameter(i + 1, JDBCType.valueOf((String) value).getVendorTypeNumber()); } else if (value instanceof Number) {
private static JDBCType getJDBCType(int val) { if (TYPE_NUMBER_MAP.isEmpty()) { synchronized(TYPE_NUMBER_MAP) { if (TYPE_NUMBER_MAP.isEmpty()) { for(java.sql.JDBCType jdbcType:java.sql.JDBCType.values()) { TYPE_NUMBER_MAP.put(jdbcType.getVendorTypeNumber(), jdbcType); } } } } return TYPE_NUMBER_MAP.get(val); }
/** * 文字列型かどうかを判定する * * @param type JDBC上の型 * @return 文字列型の場合<code>true</code> */ private boolean isStringType(final JDBCType type) { return (JDBCType.CHAR.equals(type) || JDBCType.NCHAR.equals(type) || JDBCType.VARCHAR.equals(type) || JDBCType.NVARCHAR.equals(type) || JDBCType.LONGNVARCHAR.equals(type)); }
@Override public void setDataTypeMapper(JDBCType jdbcType, DataTypeMapper mapper) { dataTypeMappers.put(jdbcType.getName(), mapper); }
/** * {@link java.sql.Types} の値を {@link java.sql.SQLType} に変換する * @param sqlType {@link java.sql.Types} の値 * @return {@link java.sql.SQLType} の値 */ private SQLType toSqlType(final int sqlType) { for (JDBCType type : JDBCType.values()) { if (type.getVendorTypeNumber().intValue() == sqlType) { return type; } } //下位互換のため、念のため生成して返す return new SQLType() { @Override public Integer getVendorTypeNumber() { return sqlType; } @Override public String getVendor() { return "unknown"; } @Override public String getName() { return "unknown name:" + sqlType; } }; }
if (resultMapping.getNestedQueryId() == null) { RDBColumnMetaData column = new RDBColumnMetaData(); column.setJdbcType(JDBCType.valueOf(resultMapping.getJdbcType().name())); column.setName(resultMapping.getColumn()); if (!StringUtils.isNullOrEmpty(resultMapping.getProperty())) {
@Override public void setDataTypeMapper(JDBCType jdbcType, DataTypeMapper mapper) { dataTypeMappers.put(jdbcType.getName(), mapper); }
@Test public void hasCorrectDataType() { assertThat(value.getDataType()).isSameAs(DATA_TYPE.getVendorTypeNumber()); }
private static SchemaBuilder.FieldAssembler<Schema> createAvroFields( ResultSetMetaData meta, SchemaBuilder.FieldAssembler<Schema> builder, boolean useLogicalTypes) throws SQLException { for (int i = 1; i <= meta.getColumnCount(); i++) { String columnName; if (meta.getColumnName(i).isEmpty()) { columnName = meta.getColumnLabel(i); } else { columnName = meta.getColumnName(i); } int columnType = meta.getColumnType(i); String typeName = JDBCType.valueOf(columnType).getName(); SchemaBuilder.FieldBuilder<Schema> field = builder .name(normalizeForAvro(columnName)) .doc(String.format("From sqlType %d %s", columnType, typeName)) .prop("columnName", columnName) .prop("sqlCode", String.valueOf(columnType)) .prop("typeName", typeName); fieldAvroType(columnType, meta.getPrecision(i), field, useLogicalTypes); } return builder; }
public QueryAssert hasColumns(List<JDBCType> expectedTypes) { hasColumnsCount(expectedTypes.size()); for (int i = 0; i < expectedTypes.size(); i++) { JDBCType expectedType = expectedTypes.get(i); JDBCType actualType = actual.getColumnType(toSqlIndex(i)); if (!actualType.equals(expectedType)) { failWithMessage("Expected <%s> column of type <%s>, but was <%s>, actual columns: %s", i, expectedType, actualType, actual.getColumnTypes()); } } return this; }
public JavaSqlTypes() { // Load default type mappings final TypeMap typeMap = new TypeMap(); javaSqlTypeMap = new HashMap<>(); for (final SQLType sqlType: JDBCType.values()) { final Integer sqlTypeInt = sqlType.getVendorTypeNumber(); final JavaSqlTypeGroup sqlTypeGroup = JavaSqlTypeGroup .valueOf(sqlTypeInt); final Class<?> mappedClass = typeMap.get(sqlType.getName()); final JavaSqlType javaSqlType = new JavaSqlType(sqlType, mappedClass, sqlTypeGroup); javaSqlTypeMap.put(sqlTypeInt, javaSqlType); } }
columnMeta.setPrecision(column.getPrecision() == null ? 0 : column.getPrecision()); columnMeta.setScale(column.getScale() == null ? 0 : column.getScale()); columnMeta.setJdbcType(JDBCType.valueOf(column.getJdbcType())); columnMeta.setJavaType(getJavaType(column.getJavaType())); columnMeta.setProperties(column.getProperties() == null ? new HashMap<>() : column.getProperties());
@Override public void setDataTypeMapper(JDBCType jdbcType, DataTypeMapper mapper) { dataTypeMappers.put(jdbcType.getName(), mapper); }