@Override
    protected JavaTypeMap newJavaTypeMap() {
        final JavaTypeMap javaTypeMap = super.newJavaTypeMap();

        javaTypeMap.put("YEAR", Integer.class);
        javaTypeMap.put("JSON", String.class);

        Stream.of("LONG", "MEDIUM", "TINY").forEach(key -> javaTypeMap.put(key + "BLOB", Blob.class));

        javaTypeMap.addRule((sqlTypeMapping, md) -> {
            if ("GEOMETRY".equalsIgnoreCase(md.getTypeName())) {
                return Optional.of(Blob.class);
            } else {
                return Optional.empty();
            }
        });

        javaTypeMap.addRule((sqlTypeMapping, md) -> {
            // Map a BIT(1) to boolean
            if ("BIT".equalsIgnoreCase(md.getTypeName()) && md.getColumnSize() == 1) {
                return Optional.of(Boolean.class);
            } else {
                return Optional.empty();
            }
        });

        return javaTypeMap;
    }
Specific MySQL implementation of a {@link DbmsMetadataHandler}.

@author  Per Minborg
@author  Emil Forslund
@since   2.0.0
runtime-parent/runtime-connector-parent/mysql/src/main/java/com/speedment/runtime/connector/mysql/internal/MySqlDbmsMetadataHandler.java