55import java .sql .Date ;
66import java .sql .Timestamp ;
77import java .util .Arrays ;
8+ import java .util .HashMap ;
9+ import java .util .Map ;
810import java .util .UUID ;
911import java .util .stream .Collectors ;
1012
@@ -25,6 +27,21 @@ public class DefaultMapper implements TypeMapper {
2527 private static final long MAX_SIZE_MEDIUMTEXT = (long ) Math .floor ((16777215 - BYTES_OVERHEAD_MEDIUMTEXT ) / 4 );
2628 private static final long MAX_SIZE_LONGTEXT = (long ) Math .floor ((4294967295L - BYTES_OVERHEAD_LONGTEXT ) / 4 );
2729
30+ public static final Map <String , Class <?>> TYPE_MAPPING = new HashMap <String , Class <?>>(){{
31+ put ("FLOAT" , Float .class );
32+ put ("DOUBLE" , Double .class );
33+ put ("INT" , Integer .class );
34+ put ("BIGINT" , Long .class );
35+ put ("VARCHAR" , String .class );
36+ put ("TEXT" , String .class );
37+ put ("SHORTTEXT" , String .class );
38+ put ("LONGTEXT" , String .class );
39+ put ("TIMESTAMP" , Timestamp .class );
40+ put ("DATE" , Date .class );
41+ put ("VARBINARY" , byte [].class );
42+ put ("CHARARRAY" , char [].class );
43+ put ("TINYINT" , Short .class );
44+ }};
2845
2946 public Object mapToSQL (Object source , Class <?> type ) {
3047 if (source == null )
@@ -64,8 +81,8 @@ public Object mapToJava(Object source, Class<?> type) {
6481 return Enum .valueOf ((Class <Enum >) type , (String ) source );
6582 if (type .equals (UUID .class ))
6683 return UUID .fromString ((String ) source );
67- if (type .equals (boolean .class ))
68- return ((Boolean ) source ). booleanValue () ;
84+ if (type .equals (boolean .class ) || type . equals ( Boolean . class ) )
85+ return ((Short ) source ) == 1 ;
6986 if (type .equals (byte .class ))
7087 return ((Byte ) source ).byteValue ();
7188 if (type .equals (short .class ))
0 commit comments