MySQL
dalu2048
这个作者很懒,什么都没留下…
展开
-
MySQL中varchar字段长度到底是多少?请注意其他字段的影响,因为一行最大长度65535。
在使用MySQL进行数据库表设计时,遇到一个字符串字段,需要很大的长度。于是,字段类型用varchar,长度想当然的填上65535,结果报错。如下图所示。上网查询,原来长度65535表示的是字节数,并不是字符数。什么意思?因为汉字的原因。汉字需要考虑编码的问题。如果用GBK编码,一个汉字用2个字节;如果用utf-8编码,一个汉字用3个字节。因此,如果该varchar字段的字符集用G...原创 2018-09-06 13:02:39 · 6337 阅读 · 2 评论 -
ResultSet的getTimestamp获取时间值存在时区问题,只需调整MySQL的时区即可。
之前用ResultSet时候,直接是用getString从数据库里面获取字符串形式的时间值,直接显示,没有出现过时间问题。后来因为要对时间数据进行计算,因此用getDate来取值,结果发现只能取到日期,而取不到时间。如果要时间,还要再通过getTime来取时间,着实麻烦。有个getTimeStamp可以获取时间戳,这样既有日期,又有时间,挺好。一切正常,结果发现取出来的数据,有时间差,相差...原创 2018-09-22 19:32:36 · 2709 阅读 · 0 评论 -
Mysql的int和bigint字段类型,映射到Java的Integer和Long类型时,勾选UNSIGNED无符号会导致越界转换。
使用Mysql查询数据时,自动映射数据类型。有时候Mysql的int字段,会正确映射到Java的Integer类型,有时候又会映射到Java的Long类型上,最后终于找到原因。原来是Mysql的int字段,勾选了unsigned无符号选项,这样就导致int类型,变成了long类型。同理,MySQL的bigint类型,本来应该映射到Java的Long类型。但是如果勾选了unsigned无...原创 2018-12-04 17:12:49 · 18934 阅读 · 3 评论