MySql 字段类型对应 Java 实体类型

MySql 字段类型对应 Java 实体类型MySql 字段类型对应 Java 实体类型前言 CopyMySQLCon J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的 一般来讲 任何 MySql 数据类型都可以被转换为一个 java lang String 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型 当然这样也可能出一些四舍五入 溢出 精度丢失之类的问题 Java 基础类型与包装类型 Copya 如果数据库字段是允许为空的 使用包

前言

 

MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String。 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型。 (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。

Java基础类型与包装类型

 

a)   如果数据库字段是允许为空的,使用包装类。   如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。   然后你就可以对异常进行捕获并处理。 b)   使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。   有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果。 总结:在项目中去使用包装类型而不是基本数据类型,这样可以使你编写代码更简单

ResultSet.getObject() 对 MySql 类型和 Java 类型转换表

MySql 类型名 GetColumnClassName 返回值 返回的 Java 类
bit(1) (MySQL-5.0) BIT java.lang.Boolean
bit(大于1) (MySQL-5.0) BIT byte[]
tinyint TINYINT 如果 tinyInt1isBit 配置设置为 true(默认为 true),是java.lang.Boolean,存储空间为 1;否则是为 java.lang.Integer
bool boolean TINYINT 参见 TINYINT。这些是 TINYINT(1) 另一种写法
smallint(M) [unsigned] SMALLINT [UNSIGNED] java.lang.Integer(不管是否无符)
mediumint(M) [unsigned] MEDIUMINT [UNSIGNED] java.lang.Integer
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) FLOAT java.lang.Float
double(M,B) DOUBLE java.lang.Double
decimal(M,D) DECIMAL java.math.BigDecimal
date DATE java.sql.Date
datetime DATETIME java.sql.Timestamp
timestamp(M) TIMESTAMP java.sql.Timestamp
time TIME java.sql.Time
year(2/4) YEAR 如果 yearIsDateType 配置设置为 false,返回的对象类型为 java.sql.Short;如果设置为 true(默认为 true),返回的对象类型是 java.sql.Date,其具体时间是为一月一日零时零分
char(M) CHAR java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
varchar(M) [binary] VARCHAR java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
binary(M) BINARY byte[]
varbinary(M) VARBINARY byte[]
tinyblob TINYBLOB byte[]
tinytext VARCHAR java.lang.String
blob BLOB byte[]
text VARCHAR java.lang.String
mediumblob MEDIUMBLOB byte[]
mediumtext VARCHAR java.lang.String
longblob LONGBLOB byte[]
longtext VARCHAR java.lang.String
enum(‘value1′,’value2’,…) CHAR java.lang.String
set(‘value1′,’value2’,…) CHAR java.lang.String

Mysql字段类型

decimal(8,2): 有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数) decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。 字符串型: 定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快。 如果长度变化不大,最好选择CHAR类型。对于长度不确定的,最好选择VARCHAR。

MySql 字段类型对应 Java 实体类型

MySql 字段类型对应 Java 实体类型

MySql 字段类型对应 Java 实体类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232367.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月15日 下午3:01
下一篇 2025年10月15日 下午3:22


相关推荐

  • 安卓逆向_9 — log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )

    安卓逆向_9 — log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )From:https://www.bilibili.com/video/BV1UE411A7rW?p=36如果仅仅用Smali来分析代码,效果其实不如用dex2jar和jd-gui更直观,毕竟看反编译的java代码要更容易一些。但Smali强大之处就是可以随心所欲的进行插桩操作。何为插桩,引用一下wiki的解释:程序插…

    2025年12月6日
    3
  • Anchorpoint_insert_tid_for_question_process

    Anchorpoint_insert_tid_for_question_process引言相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与position有什么关系?我也迷惑过,找过网上的教程,大部分都是复制粘贴的,有些是翻译的文章但很有问题,看得似懂非懂,还是自己写代码彻底弄懂了,做点笔记吧。每一个UIView内部都默认关联着一个CALa…

    2022年10月8日
    5
  • Claude 结合 spec-kit 使用指南

    Claude 结合 spec-kit 使用指南

    2026年3月12日
    2
  • navicat for mac 激活码(JetBrains全家桶)

    (navicat for mac 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    110
  • Java进阶:java开源商城系统源码

    Java进阶:java开源商城系统源码正文ZooKeeper很流行,有个基本的疑问:ZooKeeper是用来做什么的?之前没有ZK,为什么会诞生ZK?OK,解答一下上面的疑问:(下面是凭直觉说的)ZooKeeper是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节ZooKeeper对外暴露简单的API,用于支持分布式应用开发ZooKeeper在提供上述功能的同时,其还是一个高性能、高可用、高可靠的分布式集群上面说这么多,总结一下,ZK能解决分布式应用开发的问题,ZK能很好的解决

    2022年7月8日
    22
  • 智创引擎强势崛起 鹏城AI雁阵梯队领跑全球智造赛道

    智创引擎强势崛起 鹏城AI雁阵梯队领跑全球智造赛道

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号