MySQL对应的Java类型

本文详细介绍了MySQLConnector/J在Java中的数据类型转换规则,包括MySQL与Java类型间的对应关系,以及ResultSet.getObject()方法的转换策略,特别关注了可能遇到的问题如精度和溢出。
摘要由CSDN通过智能技术生成

别人那里抄的 https://blog.csdn.net/defonds/article/details/46681701
chatgpt转换了一下格式

MySQL Connector/J 数据类型转换

MySQL Connector/J 对于 MySQL 数据类型和 Java 数据类型之间的转换是非常灵活的。一般来讲,任何 MySQL 数据类型都可以被转换为一个 java.lang.String,任何 MySQL 数字类型都可以被转换为任何一种 Java 数字类型,尽管可能存在四舍五入、溢出或精度丢失等问题。

转换表

以下是MySQL数据类型与可以转换成的Java类型之间的对应关系:

MySQL 数据类型可以被转换成的 Java 类型
CHAR, VARCHAR, BLOB, TEXT, ENUM, SETjava.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINTjava.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal
DATE, TIME, DATETIME, TIMESTAMPjava.lang.String, java.sql.Date, java.sql.Timestamp

ResultSet.getObject() 方法转换表

ResultSet.getObject() 方法遵循 JDBC 规范,进行 MySQL 类型和 Java 类型的转换。

MySQL 类型名GetColumnClassName 返回值返回的 Java 类
BIT(1) (MySQL-5.0 新引入)BITjava.lang.Boolean
BIT(大于 1) (MySQL-5.0 新引入)BITbyte[]
TINYINTTINYINTtinyInt1isBit 配置设置为 true(默认为 true),是 java.lang.Boolean,存储空间为 1;
否则是 java.lang.Integer
BOOL, BOOLEANTINYINT参见 TINYINT。这些是 TINYINT(1) 的另一种写法
SMALLINT [(M)] [UNSIGNED]SMALLINT [UNSIGNED]java.lang.Integer(不管是否无符号)
MEDIUMINT [(M)] [UNSIGNED]MEDIUMINT [UNSIGNED]java.lang.Integer;无符号的话是 java.lang.Long (C/J 3.1 或更早),或者 java.lang.Integer (C/J 5.0 或更晚)
INT, INTEGER [(M)] [UNSIGNED]INTEGER [UNSIGNED]java.lang.Integer;无符号的话是 java.lang.Long
BIGINT [(M)] [UNSIGNED]BIGINT [UNSIGNED]java.lang.Long;无符号的话是 java.math.BigInteger
FLOAT [(M,D)]FLOATjava.lang.Float
DOUBLE [(M,B)]DOUBLEjava.lang.Double
DECIMAL [(M[,D])]DECIMALjava.math.BigDecimal
DATEDATEjava.sql.Date
DATETIMEDATETIMEjava.sql.Timestamp
TIMESTAMP [(M)]TIMESTAMPjava.sql.Timestamp
TIMETIMEjava.sql.Time
YEAR [(2|4)]YEARyearIsDateType 配置设置为 false,返回的对象类型为 java.sql.Short
如果设置为 true(默认为 true),返回的对象类型是 java.sql.Date,具体时间为一月一日零时零分
CHAR(M)CHARjava.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[]
VARCHAR(M) [BINARY]VARCHARjava.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[]
BINARY(M)BINARYbyte[]
VARBINARY(M)VARBINARYbyte[]
TINYBLOBTINYBLOBbyte[]
TINYTEXTVARCHARjava.lang.String
BLOBBLOBbyte[]
TEXTVARCHARjava.lang.String
MEDIUMBLOBMEDIUMBLOBbyte[]
MEDIUMTEXTVARCHARjava.lang.String
LONGBLOBLONGBLOBbyte[]
LONGTEXTVARCHARjava.lang.String
ENUM(‘value1’,‘value2’,…)CHARjava.lang.String
SET(‘value1’,‘value2’,…)CHARjava.lang.String
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值