MySQL中的数据类型_请列举MySQL中常见的数据类型

MySQL中的数据类型_请列举MySQL中常见的数据类型还在纠结javaType和jdbcType?MySQL数据类型对应Java什么类型?JdbcType类型和Java对象有什么对应关系?数据库类型的Integer是对应int还是对应Integer?本文带你一探究竟!

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  我在网上也搜过很多,就是想知道在数据库中的建表语句的字段类型对应Java实体类中属性的类型是什么。

  结果网上一套一套的说法不一,完全不一致,有没有一致点的,不会错的!看我,你就有。

  于是我就无聊到用mybatis-generator插件一一生成对应关系,插件根据数据库建表语句自动生成Java实体类对象。现在开发都是自动生成实体类,我这里也生成后记录一下。

给出数据库图形界面,方便大家理解我在做什么
在这里插入图片描述

sql如下

CREATE TABLE `testtype` (
  `int_type` int unsigned DEFAULT NULL,
  `int_unsigned` int NOT NULL,
  `bigint_unsigned20` bigint DEFAULT NULL,
  `bigint_unsigned255` bigint DEFAULT NULL,
  `big_int` bigint DEFAULT NULL,
  `big_int_255` bigint DEFAULT NULL,
  `varchar` varchar(255) DEFAULT NULL,
  `bit` bit(20) DEFAULT NULL,
  `bit_64` bit(64) DEFAULT NULL,
  `tiny_int` tinyint DEFAULT NULL,
  `tiny_int_unsigned` tinyint unsigned DEFAULT NULL,
  `small_int` smallint DEFAULT NULL,
  `small_int_unsigned` smallint DEFAULT NULL,
  `binary` binary(255) DEFAULT NULL,
  `blob` blob,
  `char_utf8` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `char_utf8mb4` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  `char_utf8gbk` char(255) CHARACTER SET gbk COLLATE gbk_chinese_ci DEFAULT NULL,
  `date` date DEFAULT NULL,
  `datetime` datetime DEFAULT NULL,
  `timestamp` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `float_type` float DEFAULT NULL,
  `float_unsigned` float unsigned DEFAULT NULL,
  `decimal` decimal(10,0) DEFAULT NULL,
  `numeric` decimal(10,0) DEFAULT NULL,
  `double_type` double DEFAULT NULL,
  `double_unsigned` double unsigned DEFAULT NULL,
  `integer_type` int DEFAULT NULL,
  `integer_unsigned` int unsigned DEFAULT NULL,
  `text` text,
  `time` time DEFAULT NULL,
  `tinytext` tinytext,
  `year` year DEFAULT NULL,
  `enum_type` enum('1','red') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
  PRIMARY KEY (`int_unsigned`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

生成的Java实体类对象如下(篇幅原因,我删掉自动生成的gettersetter):

public class testType { 
   
    private Integer intUnsigned;
    private Integer intType;
    private Long bigintUnsigned20;
    private Long bigintUnsigned255;
    private Long bigInt;
    private Long bigInt255;
    private String varchar;
    private byte[] bit;
    private byte[] bit64;
    private Byte tinyInt;
    private Byte tinyIntUnsigned;
    private Short smallInt;
    private Short smallIntUnsigned;
    private String charUtf8;
    private String charUtf8mb4;
    private String charUtf8gbk;
    private Date date;
    private Date datetime;
    private Date timestamp;
    private Float floatType;
    private Float floatUnsigned;
    private Long decimal;
    private Long numeric;
    private Double doubleType;
    private Double doubleUnsigned;
    private Integer integerType;
    private Integer integerUnsigned;
    private Date time;
    private String tinytext;
    private Date year;
    private String enumType;
}

表我给大家列出来了,帅的人已经点赞、关注、收藏一键三连了,谁偷看一下就溜走?

MySQL数据类型 Java实体类属性类型 说明
int Integer 不管是signed还是unsigned,Java实体类型都是Integer
bigint Long 不管是bigint(xxx)括号多少位,不管signed还是unsigned,Java实体类型都是Long
varchar String
bit byte[]
tinyint Byte 不管是signed还是unsigned,Java实体类型都是Byte,在java.lang包下
smallint Short 不管是signed还是unsigned,Java实体类型都是Short
char String 不管char是gbk、utf8、utf8mb4等编码类型,Java实体类型都是String
date Date java.util.Date
datetime Date java.util.Date
timestamp Date java.util.Date
time Date java.util.Date
float Float 不管是signed还是unsigned,Java实体类型都是Float
decimal Long
numeric Long
double Double 不管是signed还是unsigned,Java实体类型都是Double
tinytext String
text String
year Date java.util.Date
enum String

  有些类型插件没有自动转换过来,我就不列举,这里就列举常用的并且插件能转换过来的,这肯定是对的没错。

后续设计表规范内容:

1.从8.0.17版本开始,TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT类型的显示宽度将失效。比如bigint(20),如果用navicat直接保存长度20,最终在建表语句被保存为bigint,长度会失效。
2.自增字段类型必须是整型而且必须是unsigned,推荐int或者bigint,并且自增字段必须是主键或者主键的一部分,我个人写物理主键id一般就是bigint unsigned
3.手机号使用varchar(20),不要使用整数。
4.对于精确浮点型数据存储,需要使用decimal,严禁使用floatdouble
5.如无特殊需要,禁止开发人员使用blob
6.日期类型字段不能使用varchar或者char,只能使用datedatetime字段类型存放。
7.所有只需要精确到天的字段全部使用date类型,而不应该使用timestamp或者datetime类型。
8.所有需要精确到时分秒的字段均使用datetime,不要使用timestamp类型。
9.不建议使用enumset类型,使用tinyint替代。
10.仅仅只有单个字符的字段用char(1),比如性别字段。
11.按照规范,每个列定义的时候必须加上comments,我上面举例子偷懒了所以没写。
12.数据库的字符集只能选择utf8mb4,如果需要导出,也需要显式选择utf8mb4作为导出格式。

欢迎一键三连~

有问题请留言,大家一起探讨学习

———————-Talk is cheap, show me the code———————–

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197626.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 万能模拟器eve-ng介绍[通俗易懂]

    万能模拟器eve-ng介绍[通俗易懂]作为一名网络工程师,通过模拟器来搭建实验环境是必不可少的,主流的网络模拟器有如下几款:PacketTracer是思科公司出的一款模拟器,只能模拟思科自己的设备,由于此款软件是纯软件模拟,所以思科设备的很多特性模拟的不是很好,可以应付CCNA的实验,只适合入门,再复杂点的环境就要找其他模拟器了。Dynamips是一个基于虚拟化的模拟器,用于模拟思科的路由器,中国大神-小凡通过添加GUI用户界面开发…

  • oracle 第一范式,数据库范式之第一范式

    oracle 第一范式,数据库范式之第一范式数据库范式(DatabaseNormalization)设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,还又称完美范式)。首先要明白”范式(NF)”…

  • 浅析Python中bytes和str区别

    本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型Python3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,

    2021年12月29日
  • 浏览器 兼容性 问题记录集

    浏览器 兼容性 问题记录集

  • pycharm pyinstaller打包exe_pip安装第三方库失败

    pycharm pyinstaller打包exe_pip安装第三方库失败1.安装时打开AnacondaPrompt,然后cdD:\Anaconda3\pkgs打开路径,输入安装命令:pipinstallPyInstaller。最后输入piplist查看2.调出terminal终端,输入命令例如pyinstaller-F-wvipvideoplay2.py点击回车如图:输入指定命令后会在当前目录下生产dist文件夹,dist文件夹下为生成的exe文件参数说明:-F:将所有库文件打包成一个exe-w:隐藏黑色控制台窗口如果不加-F参数会生成很多文

  • 信息系统项目的范围管理论文_高级项目管理师论文

    信息系统项目的范围管理论文_高级项目管理师论文本人参加了2019年上半年信息系统项目管理师考试,目前已经通过。论文我压了2篇,但是都没有压中,考场看到题目差点吐血,还好后面按照自己的思路也顺利过关。这里和大家分享一下我的论文资料,大家可以参考。摘要20xx年x月,我作为项目经理参与了深圳市某上市公司的生产管理系统项目。该项目总投资300万人民币,建设工期为10个月,通过项目的建设,实现了该公司物料管理、库存管理、生产工单、生产计划、生产派…

发表回复

您的电子邮箱地址不会被公开。

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