赞
踩
MySQL数据类型 | JAVA数据类型 | JDBC TYPE |
---|---|---|
BIGINT | Long | BIGINT |
TINYINT | Byte | TINYINT |
SMALLINT | Short | SMALLINT |
MEDIUMINT | Integer | INTEGER |
INTEGER | Integer | INTEGER |
INT | Integer | INTEGER |
FLOAT | Float | REAL |
DOUBLE | Double | DOUBLE |
DECIMAL | BigDecimal | DECIMAL |
NUMERIC | BigDecimal | NUMERIC |
CHAR | String | CHAR |
VARCHAR | String | VARCHAR |
TINYBLOB | byte[] | BINARY |
TINYTEXT | String | VARCHAR |
BLOB | byte[] | BINARY |
TEXT | String | LONGVARCHAR |
MEDIUMBLOB | byte[] | LONGVARBINARY |
MEDIUMTEXT | String | LONGVARCHAR |
LONGBLOB | byte[] | LONGVARBINARY |
LONGTEXT | String | LONGVARCHAR |
DATE | Date | DATE |
TIME | Date | TIME |
YEAR | Date | DATE |
DATETIME | Date | TIMESTAMP |
TIMESTAMP | Date | TIMESTAMP |
文件:mysql-connector-java-8.0.11.jar
类名:com.mysql.cj.MysqlType
- /**
- * DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
- * A packed "exact" fixed-point number. M is the total number of digits (the precision) and D is the number of digits
- * after the decimal point (the scale). The decimal point and (for negative numbers) the "-" sign are not counted in M.
- * If D is 0, values have no decimal point or fractional part. The maximum number of digits (M) for DECIMAL is 65.
- * The maximum number of supported decimals (D) is 30. If D is omitted, the default is 0. If M is omitted, the default is 10.
- *
- * Protocol: FIELD_TYPE_DECIMAL = 0
- * Protocol: FIELD_TYPE_NEWDECIMAL = 246
- *
- * These types are synonyms for DECIMAL:
- * DEC[(M[,D])] [UNSIGNED] [ZEROFILL],
- * NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL],
- * FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]
- */
- DECIMAL("DECIMAL", Types.DECIMAL, BigDecimal.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 65L, "[(M[,D])] [UNSIGNED] [ZEROFILL]"),
- /**
- * DECIMAL[(M[,D])] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#DECIMAL
- */
- DECIMAL_UNSIGNED("DECIMAL UNSIGNED", Types.DECIMAL, BigDecimal.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 65L, "[(M[,D])] [UNSIGNED] [ZEROFILL]"),
- /**
- * TINYINT[(M)] [UNSIGNED] [ZEROFILL]
- * A very small integer. The signed range is -128 to 127. The unsigned range is 0 to 255.
- *
- * Protocol: FIELD_TYPE_TINY = 1
- */
- TINYINT("TINYINT", Types.TINYINT, Integer.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 3L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * TINYINT[(M)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#TINYINT
- */
- TINYINT_UNSIGNED("TINYINT UNSIGNED", Types.TINYINT, Integer.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 3L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * BOOL, BOOLEAN
- * These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true
- *
- * BOOLEAN is converted to TINYINT(1) during DDL execution i.e. it has the same precision=3. Thus we have to
- * look at full data type name and convert TINYINT to BOOLEAN (or BIT) if it has "(1)" length specification.
- *
- * Protocol: FIELD_TYPE_TINY = 1
- */
- BOOLEAN("BOOLEAN", Types.BOOLEAN, Boolean.class, 0, MysqlType.IS_NOT_DECIMAL, 3L, ""),
- /**
- * SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
- * A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535.
- *
- * Protocol: FIELD_TYPE_SHORT = 2
- */
- SMALLINT("SMALLINT", Types.SMALLINT, Integer.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 5L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * SMALLINT[(M)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#SMALLINT
- */
- SMALLINT_UNSIGNED("SMALLINT UNSIGNED", Types.SMALLINT, Integer.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 5L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * INT[(M)] [UNSIGNED] [ZEROFILL]
- * A normal-size integer. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.
- *
- * Protocol: FIELD_TYPE_LONG = 3
- *
- * INTEGER[(M)] [UNSIGNED] [ZEROFILL] is a synonym for INT.
- */
- INT("INT", Types.INTEGER, Integer.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 10L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * INT[(M)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#INT
- */
- INT_UNSIGNED("INT UNSIGNED", Types.INTEGER, Long.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 10L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
- * A small (single-precision) floating-point number. Permissible values are -3.402823466E+38 to -1.175494351E-38, 0,
- * and 1.175494351E-38 to 3.402823466E+38. These are the theoretical limits, based on the IEEE standard. The actual
- * range might be slightly smaller depending on your hardware or operating system.
- *
- * M is the total number of digits and D is the number of digits following the decimal point. If M and D are omitted,
- * values are stored to the limits permitted by the hardware. A single-precision floating-point number is accurate to
- * approximately 7 decimal places.
- *
- * Protocol: FIELD_TYPE_FLOAT = 4
- *
- * Additionally:
- * FLOAT(p) [UNSIGNED] [ZEROFILL]
- * A floating-point number. p represents the precision in bits, but MySQL uses this value only to determine whether
- * to use FLOAT or DOUBLE for the resulting data type. If p is from 0 to 24, the data type becomes FLOAT with no M or D values.
- * If p is from 25 to 53, the data type becomes DOUBLE with no M or D values. The range of the resulting column is the same as
- * for the single-precision FLOAT or double-precision DOUBLE data types.
- */
- FLOAT("FLOAT", Types.REAL, Float.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 12L, "[(M,D)] [UNSIGNED] [ZEROFILL]"),
- /**
- * FLOAT[(M,D)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#FLOAT
- */
- FLOAT_UNSIGNED("FLOAT UNSIGNED", Types.REAL, Float.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 12L, "[(M,D)] [UNSIGNED] [ZEROFILL]"),
- /**
- * DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
- * A normal-size (double-precision) floating-point number. Permissible values are -1.7976931348623157E+308 to
- * -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to 1.7976931348623157E+308. These are the theoretical limits,
- * based on the IEEE standard. The actual range might be slightly smaller depending on your hardware or operating system.
- *
- * M is the total number of digits and D is the number of digits following the decimal point. If M and D are omitted,
- * values are stored to the limits permitted by the hardware. A double-precision floating-point number is accurate to
- * approximately 15 decimal places.
- *
- * Protocol: FIELD_TYPE_DOUBLE = 5
- *
- * These types are synonyms for DOUBLE:
- * DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL],
- * REAL[(M,D)] [UNSIGNED] [ZEROFILL]. Exception: If the REAL_AS_FLOAT SQL mode is enabled, REAL is a synonym for FLOAT rather than DOUBLE.
- */
- DOUBLE("DOUBLE", Types.DOUBLE, Double.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 22L, "[(M,D)] [UNSIGNED] [ZEROFILL]"),
- /**
- * DOUBLE[(M,D)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#DOUBLE
- */
- DOUBLE_UNSIGNED("DOUBLE UNSIGNED", Types.DOUBLE, Double.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 22L, "[(M,D)] [UNSIGNED] [ZEROFILL]"),
- /**
- * FIELD_TYPE_NULL = 6
- */
- NULL("NULL", Types.NULL, Object.class, 0, MysqlType.IS_NOT_DECIMAL, 0L, ""),
- /**
- * TIMESTAMP[(fsp)]
- * A timestamp. The range is '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC.
- * TIMESTAMP values are stored as the number of seconds since the epoch ('1970-01-01 00:00:00' UTC).
- * A TIMESTAMP cannot represent the value '1970-01-01 00:00:00' because that is equivalent to 0 seconds
- * from the epoch and the value 0 is reserved for representing '0000-00-00 00:00:00', the "zero" TIMESTAMP value.
- * An optional fsp value in the range from 0 to 6 may be given to specify fractional seconds precision. A value
- * of 0 signifies that there is no fractional part. If omitted, the default precision is 0.
- *
- * Protocol: FIELD_TYPE_TIMESTAMP = 7
- *
- */
- // TODO If MySQL server run with the MAXDB SQL mode enabled, TIMESTAMP is identical with DATETIME. If this mode is enabled at the time that a table is created, TIMESTAMP columns are created as DATETIME columns.
- // As a result, such columns use DATETIME display format, have the same range of values, and there is no automatic initialization or updating to the current date and time
- TIMESTAMP("TIMESTAMP", Types.TIMESTAMP, Timestamp.class, 0, MysqlType.IS_NOT_DECIMAL, 26L, "[(fsp)]"),
- /**
- * BIGINT[(M)] [UNSIGNED] [ZEROFILL]
- * A large integer. The signed range is -9223372036854775808 to 9223372036854775807. The unsigned range is 0 to 18446744073709551615.
- *
- * Protocol: FIELD_TYPE_LONGLONG = 8
- *
- * SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
- */
- BIGINT("BIGINT", Types.BIGINT, Long.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 19L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * BIGINT[(M)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#BIGINT
- */
- BIGINT_UNSIGNED("BIGINT UNSIGNED", Types.BIGINT, BigInteger.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 20L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
- * A medium-sized integer. The signed range is -8388608 to 8388607. The unsigned range is 0 to 16777215.
- *
- * Protocol: FIELD_TYPE_INT24 = 9
- */
- MEDIUMINT("MEDIUMINT", Types.INTEGER, Integer.class, MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 7L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * MEDIUMINT[(M)] UNSIGNED [ZEROFILL]
- *
- * @see MysqlType#MEDIUMINT
- */
- MEDIUMINT_UNSIGNED("MEDIUMINT UNSIGNED", Types.INTEGER, Integer.class, MysqlType.FIELD_FLAG_UNSIGNED | MysqlType.FIELD_FLAG_ZEROFILL, MysqlType.IS_DECIMAL, 8L, "[(M)] [UNSIGNED] [ZEROFILL]"),
- /**
- * DATE
- * A date. The supported range is '1000-01-01' to '9999-12-31'. MySQL displays DATE values in 'YYYY-MM-DD' format,
- * but permits assignment of values to DATE columns using either strings or numbers.
- *
- * Protocol: FIELD_TYPE_DATE = 10
- */
- DATE("DATE", Types.DATE, Date.class, 0, MysqlType.IS_NOT_DECIMAL, 10L, ""),
- /**
- * TIME[(fsp)]
- * A time. The range is '-838:59:59.000000' to '838:59:59.000000'. MySQL displays TIME values in
- * 'HH:MM:SS[.fraction]' format, but permits assignment of values to TIME columns using either strings or numbers.
- * An optional fsp value in the range from 0 to 6 may be given to specify fractional seconds precision. A value
- * of 0 signifies that there is no fractional part. If omitted, the default precision is 0.
- *
- * Protocol: FIELD_TYPE_TIME = 11
- */
- TIME("TIME", Types.TIME, Time.class, 0, MysqlType.IS_NOT_DECIMAL, 16L, "[(fsp)]"),
- /**
- * DATETIME[(fsp)]
- * A date and time combination. The supported range is '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'.
- * MySQL displays DATETIME values in 'YYYY-MM-DD HH:MM:SS[.fraction]' format, but permits assignment of values to
- * DATETIME columns using either strings or numbers.
- * An optional fsp value in the range from 0 to 6 may be given to specify fractional seconds precision. A value
- * of 0 signifies that there is no fractional part. If omitted, the default precision is 0.
- *
- * Protocol: FIELD_TYPE_DATETIME = 12
- */
- DATETIME("DATETIME", Types.TIMESTAMP, Timestamp.class, 0, MysqlType.IS_NOT_DECIMAL, 26L, "[(fsp)]"),
- /**
- * YEAR[(4)]
- * A year in four-digit format. MySQL displays YEAR values in YYYY format, but permits assignment of
- * values to YEAR columns using either strings or numbers. Values display as 1901 to 2155, and 0000.
- * Protocol: FIELD_TYPE_YEAR = 13
- */
- YEAR("YEAR", Types.DATE, Date.class, 0, MysqlType.IS_NOT_DECIMAL, 4L, "[(4)]"),
- /**
- * [NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name]
- * A variable-length string. M represents the maximum column length in characters. The range of M is 0 to 65,535.
- * The effective maximum length of a VARCHAR is subject to the maximum row size (65,535 bytes, which is shared among
- * all columns) and the character set used. For example, utf8 characters can require up to three bytes per character,
- * so a VARCHAR column that uses the utf8 character set can be declared to be a maximum of 21,844 characters.
- *
- * MySQL stores VARCHAR values as a 1-byte or 2-byte length prefix plus data. The length prefix indicates the number
- * of bytes in the value. A VARCHAR column uses one length byte if values require no more than 255 bytes, two length
- * bytes if values may require more than 255 bytes.
- *
- * Note
- * MySQL 5.7 follows the standard SQL specification, and does not remove trailing spaces from VARCHAR values.
- *
- * VARCHAR is shorthand for CHARACTER VARYING. NATIONAL VARCHAR is the standard SQL way to define that a VARCHAR
- * column should use some predefined character set. MySQL 4.1 and up uses utf8 as this predefined character set.
- * NVARCHAR is shorthand for NATIONAL VARCHAR.
- *
- * Protocol: FIELD_TYPE_VARCHAR = 15
- * Protocol: FIELD_TYPE_VAR_STRING = 253
- */
- VARCHAR("VARCHAR", Types.VARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "(M) [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * VARBINARY(M)
- * The VARBINARY type is similar to the VARCHAR type, but stores binary byte strings rather than nonbinary
- * character strings. M represents the maximum column length in bytes.
- *
- * Protocol: FIELD_TYPE_VARCHAR = 15
- * Protocol: FIELD_TYPE_VAR_STRING = 253
- */
- VARBINARY("VARBINARY", Types.VARBINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "(M)"),
- /**
- * BIT[(M)]
- * A bit-field type. M indicates the number of bits per value, from 1 to 64. The default is 1 if M is omitted.
- * Protocol: FIELD_TYPE_BIT = 16
- */
- BIT("BIT", Types.BIT, Boolean.class, 0, MysqlType.IS_DECIMAL, 1L, "[(M)]"), // TODO maybe precision=8 ?
- /**
- * The size of JSON documents stored in JSON columns is limited to the value of the max_allowed_packet system variable (max value 1073741824).
- * (While the server manipulates a JSON value internally in memory, it can be larger; the limit applies when the server stores it.)
- *
- * Protocol: FIELD_TYPE_BIT = 245
- */
- JSON("JSON", Types.LONGVARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 1073741824L, ""),
- /**
- * ENUM('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]
- * An enumeration. A string object that can have only one value, chosen from the list of values 'value1',
- * 'value2', ..., NULL or the special '' error value. ENUM values are represented internally as integers.
- * An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)
- * A table can have no more than 255 unique element list definitions among its ENUM and SET columns considered as a group
- *
- * Protocol: FIELD_TYPE_ENUM = 247
- */
- ENUM("ENUM", Types.CHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * SET('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]
- * A set. A string object that can have zero or more values, each of which must be chosen from the list
- * of values 'value1', 'value2', ... SET values are represented internally as integers.
- * A SET column can have a maximum of 64 distinct members. A table can have no more than 255 unique
- * element list definitions among its ENUM and SET columns considered as a group
- *
- * Protocol: FIELD_TYPE_SET = 248
- */
- SET("SET", Types.CHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 64L, "('value1','value2',...) [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * TINYBLOB
- * A BLOB column with a maximum length of 255 (28 ??? 1) bytes. Each TINYBLOB value is stored using a
- * 1-byte length prefix that indicates the number of bytes in the value.
- *
- * Protocol:FIELD_TYPE_TINY_BLOB = 249
- */
- TINYBLOB("TINYBLOB", Types.VARBINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 255L, ""),
- /**
- * TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
- * A TEXT column with a maximum length of 255 (28 ??? 1) characters. The effective maximum length
- * is less if the value contains multibyte characters. Each TINYTEXT value is stored using
- * a 1-byte length prefix that indicates the number of bytes in the value.
- *
- * Protocol:FIELD_TYPE_TINY_BLOB = 249
- */
- TINYTEXT("TINYTEXT", Types.VARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 255L, " [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * MEDIUMBLOB
- * A BLOB column with a maximum length of 16,777,215 (224 ??? 1) bytes. Each MEDIUMBLOB value is stored
- * using a 3-byte length prefix that indicates the number of bytes in the value.
- *
- * Protocol: FIELD_TYPE_MEDIUM_BLOB = 250
- */
- MEDIUMBLOB("MEDIUMBLOB", Types.LONGVARBINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 16777215L, ""),
- /**
- * MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
- * A TEXT column with a maximum length of 16,777,215 (224 ??? 1) characters. The effective maximum length
- * is less if the value contains multibyte characters. Each MEDIUMTEXT value is stored using a 3-byte
- * length prefix that indicates the number of bytes in the value.
- *
- * Protocol: FIELD_TYPE_MEDIUM_BLOB = 250
- */
- MEDIUMTEXT("MEDIUMTEXT", Types.LONGVARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 16777215L, " [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * LONGBLOB
- * A BLOB column with a maximum length of 4,294,967,295 or 4GB (232 ??? 1) bytes. The effective maximum length
- * of LONGBLOB columns depends on the configured maximum packet size in the client/server protocol and available
- * memory. Each LONGBLOB value is stored using a 4-byte length prefix that indicates the number of bytes in the value.
- *
- * Protocol: FIELD_TYPE_LONG_BLOB = 251
- */
- LONGBLOB("LONGBLOB", Types.LONGVARBINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 4294967295L, ""),
- /**
- * LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
- * A TEXT column with a maximum length of 4,294,967,295 or 4GB (232 ??? 1) characters. The effective
- * maximum length is less if the value contains multibyte characters. The effective maximum length
- * of LONGTEXT columns also depends on the configured maximum packet size in the client/server protocol
- * and available memory. Each LONGTEXT value is stored using a 4-byte length prefix that indicates
- * the number of bytes in the value.
- *
- * Protocol: FIELD_TYPE_LONG_BLOB = 251
- */
- LONGTEXT("LONGTEXT", Types.LONGVARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 4294967295L, " [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * BLOB[(M)]
- * A BLOB column with a maximum length of 65,535 (216 ??? 1) bytes. Each BLOB value is stored using
- * a 2-byte length prefix that indicates the number of bytes in the value.
- * An optional length M can be given for this type. If this is done, MySQL creates the column as
- * the smallest BLOB type large enough to hold values M bytes long.
- *
- * Protocol: FIELD_TYPE_BLOB = 252
- */
- BLOB("BLOB", Types.LONGVARBINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "[(M)]"),
- /**
- * TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
- * A TEXT column with a maximum length of 65,535 (216 ??? 1) characters. The effective maximum length
- * is less if the value contains multibyte characters. Each TEXT value is stored using a 2-byte length
- * prefix that indicates the number of bytes in the value.
- * An optional length M can be given for this type. If this is done, MySQL creates the column as
- * the smallest TEXT type large enough to hold values M characters long.
- *
- * Protocol: FIELD_TYPE_BLOB = 252
- */
- TEXT("TEXT", Types.LONGVARCHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * [NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
- * A fixed-length string that is always right-padded with spaces to the specified length when stored.
- * M represents the column length in characters. The range of M is 0 to 255. If M is omitted, the length is 1.
- * Note
- * Trailing spaces are removed when CHAR values are retrieved unless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.
- * CHAR is shorthand for CHARACTER. NATIONAL CHAR (or its equivalent short form, NCHAR) is the standard SQL way
- * to define that a CHAR column should use some predefined character set. MySQL 4.1 and up uses utf8
- * as this predefined character set.
- *
- * MySQL permits you to create a column of type CHAR(0). This is useful primarily when you have to be compliant
- * with old applications that depend on the existence of a column but that do not actually use its value.
- * CHAR(0) is also quite nice when you need a column that can take only two values: A column that is defined
- * as CHAR(0) NULL occupies only one bit and can take only the values NULL and '' (the empty string).
- *
- * Protocol: FIELD_TYPE_STRING = 254
- */
- CHAR("CHAR", Types.CHAR, String.class, 0, MysqlType.IS_NOT_DECIMAL, 255L, "[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]"),
- /**
- * BINARY(M)
- * The BINARY type is similar to the CHAR type, but stores binary byte strings rather than nonbinary character strings.
- * M represents the column length in bytes.
- *
- * The CHAR BYTE data type is an alias for the BINARY data type.
- *
- * Protocol: no concrete type on the wire TODO: really?
- */
- BINARY("BINARY", Types.BINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 255L, "(M)"),
- /**
- * Top class for Spatial Data Types
- *
- * Protocol: FIELD_TYPE_GEOMETRY = 255
- */
- GEOMETRY("GEOMETRY", Types.BINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 65535L, ""), // TODO check precision, it isn't well documented, only mentioned that WKB format is represented by BLOB
- /**
- * Fall-back type for those MySQL data types which c/J can't recognize.
- * Handled the same as BLOB.
- *
- * Has no protocol ID.
- */
- UNKNOWN("UNKNOWN", Types.OTHER, null, 0, MysqlType.IS_NOT_DECIMAL, 65535L, "");
-
- /**
- * Get MysqlType matching the full MySQL type name, for example "DECIMAL(5,3) UNSIGNED ZEROFILL".
- * Distinct *_UNSIGNED type will be returned if "UNSIGNED" is present in fullMysqlTypeName.
- *
- * @param fullMysqlTypeName
- * full MySQL type name
- * @return MysqlType
- */
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。