Руководство по JDBC. Типы данных.

Перед тем, как отправлять данные в базу данных (далее – БД), драйвер JDBC преобразует типы данных языка программирования Java в соответствующие типы данных SQL. Для этого используется стандартное связывание  основных типов данных формата (“Тип данных Java” – “Тип данных SQL”). Например, тип String языка Java преобразовывается в тип данных SQL – VARCHAR.

В таблице ниже приведены примеры того, в какие типы данных Java преобразовываются типы данных SQL. Для преобразования используется методы формата setXXX() и updateXXX().

SQL JDBC/Java setXXX updateXXX
VARCHAR java.lang.String setString updateString
CHAR java.lang.String setString updateString
LONGVARCHAR java.lang.String setString updateString
BIT boolean setBoolean updateBoolean
NUMERIC java.math.BigDecimal setBigDecimal updateBigDecimal
TINYINT byte setByte updateByte
SMALLINT short setShort updateShort
INTEGER int setInt updateInt
BIGINT long setLong updateLong
REAL float setFloat updateFloat
FLOAT float setFloat updateFloat
DOUBLE double setDouble updateDouble
VARBINARY byte[ ] setBytes updateBytes
BINARY byte[ ] setBytes updateBytes
DATE java.sql.Date setDate updateDate
TIME java.sql.Time setTime updateTime
TIMESTAMP java.sql.Timestamp setTimestamp updateTimestamp
CLOB java.sql.Clob setClob updateClob
BLOB java.sql.Blob setBlob updateBlob
ARRAY java.sql.Array setARRAY updateARRAY
REF java.sql.Ref SetRef updateRef
STRUCT java.sql.Struct SetStruct updateStruct

Для понимания того, как это работает на практике рассмотрим пример приложения, в котором мы преобразуем дату и время Java в дату и время языка SQL.

Пример:


public class DataTypesConversionDemo {
    public static void main(String[] args) {
        /**
         *  Java Date and Time
         */
        java.util.Date javaDate = new java.util.Date();
        long javaTime = javaDate.getTime();

        System.out.println("Current date and time (Java): " + javaDate.toString());
        System.out.printf("Current time (Java): " + javaDate.getHours() + ":" +
                javaDate.getMinutes() + ":"
                + javaDate.getSeconds());

        /**
         * SQL Date and Time
         */
        java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(javaTime);
        java.sql.Date sqlDate = new java.sql.Date(javaTime);
        java.sql.Time sqlTime = new java.sql.Time(javaTime);

        System.out.println("\n=======================================\n");
        System.out.println("Current timeStamp (SQL): " + sqlTimeStamp.toString());
        System.out.println("Current date (SQL): " + sqlDate.toString());
        System.out.println("Current time (SQL): " + sqlTime.toString());


    }
}

В результате работы программы мы получим, примерно, следующий результат:


Current date and time (Java): Sun Mar 20 05:56:11 EET 2016
Current time (Java): 5:56:11
=======================================

Current timeStamp (SQL): 2016-03-20 05:56:11.105
Current date (SQL): 2016-03-20
Current time (SQL): 05:56:11

В этом уроке мы изучили как происходит преобразование типов данных Java в типы данных SQL и наоборот. Также мы рассмотрели пример простого приложения с применением такого преобразования (дата и время).

В следующем уроке мы изучим такой элемент, как транзакции.