MySQL Connector/J is flexible in the way it handles conversions between MySQL data types and Java data types.
        In general, any MySQL data type can be converted to a
        java.lang.String, and any numeric type can be
        converted to any of the Java numeric types, although round-off,
        overflow, or loss of precision may occur.
      
        Connector/J issues warnings or throws
        DataTruncation exceptions as is required by
        the JDBC specification, unless the connection was configured not
        to do so by using the property
        jdbcCompliantTruncation and setting it to
        false.
      
The conversions that are always guaranteed to work are listed in the following table. The first column lists one or more MySQL data types, and the second column lists one or more Java types to which the MySQL types can be converted.
Table 6.19 Possible Conversions Between MySQL and Java Data Types
| These MySQL Data Types | Can always be converted to these Java types | 
|---|---|
| CHAR, VARCHAR, BLOB, TEXT, ENUM, and SET | java.lang.String, java.io.InputStream, java.io.Reader,
              java.sql.Blob, java.sql.Clob | 
| FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT,
              SMALLINT, MEDIUMINT, INTEGER, BIGINT | java.lang.String, java.lang.Short, java.lang.Integer,
              java.lang.Long, java.lang.Double,
              java.math.BigDecimal | 
| DATE, TIME, DATETIME, TIMESTAMP | java.lang.String, java.sql.Date, java.sql.Timestamp | 
Round-off, overflow or loss of precision may occur if you choose a Java numeric data type that has less precision or capacity than the MySQL data type you are converting to/from.
        The ResultSet.getObject() method uses the
        type conversions between MySQL and Java types, following the
        JDBC specification where appropriate. The values returned by
        ResultSetMetaData.GetColumnTypeName()and
        ResultSetMetaData.GetColumnClassName()
        are shown in the table below. For more information on the JDBC
        types, see the reference on the
        java.sql.Types
        class.
      
Table 6.20 MySQL Types and Return Values for ResultSetMetaData.GetColumnTypeName()and ResultSetMetaData.GetColumnClassName()
| MySQL Type Name | Return value of GetColumnTypeName | Return value of GetColumnClassName | 
|---|---|---|
| BIT(1) | BIT | java.lang.Boolean | 
| BIT( > 1) | BIT | byte[] | 
| TINYINT(1) SIGNED, BOOLEAN | 
                  If  
                  If  
                  If  | 
                  If  
                  If  
                  If  | 
| TINYINT( > 1) SIGNED | TINYINT | java.lang.Integer | 
| TINYINT( any ) UNSIGNED | TINYINT UNSIGNED | java.lang.Integer | 
| SMALLINT[(M)] [UNSIGNED] | SMALLINT [UNSIGNED] | java.lang.Integer(regardless of whether it isUNSIGNEDor not) | 
| MEDIUMINT[(M)] [UNSIGNED] | MEDIUMINT [UNSIGNED] | java.lang.Integer(regardless of whether it isUNSIGNEDor not) | 
| INT,INTEGER[(M)] | INTEGER | java.lang.Integer | 
| INT,INTEGER[(M)] UNSIGNED | INTEGER UNSIGNED | java.lang.Long | 
| BIGINT[(M)] | BIGINT  | java.lang.Long | 
| BIGINT[(M)] UNSIGNED | BIGINT UNSIGNED | java.math.BigInteger | 
| FLOAT[(M,D)] | FLOAT | java.lang.Float | 
| DOUBLE[(M,B)] [UNSIGNED] | DOUBLE | java.lang.Double(regardless of whether it isUNSIGNEDor not) | 
| DECIMAL[(M[,D])] [UNSIGNED] | DECIMAL | java.math.BigDecimal(regardless of whether it isUNSIGNEDor not) | 
| DATE | DATE | java.sql.Date | 
| DATETIME | DATETIME | java.time.LocalDateTime | 
| TIMESTAMP[(M)] | TIMESTAMP | java.sql.Timestamp | 
| TIME | TIME | java.sql.Time | 
| YEAR[(2|4)] | YEAR | If yearIsDateTypeconfiguration property is set tofalse, then the returned object type
                isjava.sql.Short. If set totrue(the default), then the returned
                object is of typejava.sql.Date. | 
| CHAR(M) | CHAR | java.lang.String | 
| VARCHAR(M) | VARCHAR | java.lang.String | 
| BINARY(M),CHAR(M) BINARY | BINARY | byte[] | 
| VARBINARY(M),VARCHAR(M) BINARY | VARBINARY | byte[] | 
| BLOB | BLOB | byte[] | 
| TINYBLOB | TINYBLOB | byte[] | 
| MEDIUMBLOB | MEDIUMBLOB | byte[] | 
| LONGBLOB | LONGBLOB | byte[] | 
| TEXT | TEXT | java.lang.String | 
| TINYTEXT | TINYTEXT | java.lang.String | 
| MEDIUMTEXT | MEDIUMTEXT | java.lang.String | 
| LONGTEXT | LONGTEXT | java.lang.String | 
| JSON | JSON | java.lang.String | 
| GEOMETRY | GEOMETRY | byte[] | 
| VECTOR(M)(only supported when available with MySQL
                Enterprise Server) | VECTOR | byte[] | 
| ENUM('value1','value2',...) | CHAR | java.lang.String | 
| SET('value1','value2',...) | CHAR | java.lang.String |