当前位置: 首页 > news >正文

莆田企业自助建站网站建设站

莆田企业自助建站,网站建设站,抖音小程序推广,会计培训班多少钱测试环境 mysql5.7.44 达梦2024Q2季度版 前言 在mysql 中存在 tinyint(1)的用法来实现存储0 1 作为boolean的标识列;但是在达梦并不允许使用 tinyint(1)来定义列,只能使用 tinyint 即 取值范围为&#xff…

测试环境 mysql5.7.44
达梦2024Q2季度版

前言

在mysql 中存在 tinyint(1)的用法来实现存储0 1 作为boolean的标识列;但是在达梦并不允许使用 tinyint(1)来定义列,只能使用 tinyint 即 取值范围为:-128 ~ +127;实际上mysql 使用tinyint(1)定义列,取值范围仍为-128 ~ +127,并非 {0, 1} ;但是在mysql 中当 tinyint存储为0 1 时,jdbc 使用getObjecct获取改列的值类型为boolean,并非数字,这又是怎么回事呢。先说答案,为了在达梦JDBC获取到boolean类型需要在数据库中将对应列改为bit 类型。

分析

mysql实验

tinyint取值范围

插入数据验证mysql 的 tinyint(1)的存储范围是否为 {0, 1}

create table test_tinyint_20240911(a1 tinyint(1),name varchar(20));
insert into test_tinyint_20240911 values(100,'test100');
insert into test_tinyint_20240911 values(133,'test100');

在我的测试环境中mysql 将超出的列值自动进行了截断,取了取值上限
mysql插入测试
那么,可以证明的 tinyint(1)的存储范围不为 {0, 1}

tinyint jdbc返回值类型

  • 插入boolean 返回boolean getBoolean在这里插入图片描述
  • 插入数字返回布尔 getObject
    在这里插入图片描述
  • 插入数字返回数字 getObject
    在这里插入图片描述
  • 插入数字返回数字 getInt
    在这里插入图片描述
  • 定义tinyint(13)插入数字返回数字 getInt
    在这里插入图片描述

达梦实验

tinyint建表测试

create table test_tinyint_20240911(a1 tinyint(1),name varchar(20)); --报错
create table test_tinyint_20240911(a1 tinyint,name varchar(20));insert into test_tinyint_20240911 values(100,'test100');
insert into test_tinyint_20240911 values(133,'test100');

tinyint(1)测试
插入测试

tinyint jdbc返回值类型

  • tinyint 插入boolean返回数字 getObject
    在这里插入图片描述
  • tinyint 插入数字返回数字 getObject

在这里插入图片描述

  • bit 插入boolean 返回boolean getObject

在这里插入图片描述

  • bit 插入boolean 返回数字 getInt
    在这里插入图片描述
  • bit 插入数字 返回boolean getBoolean

在这里插入图片描述

测试结论

测试截图比较乱,但是可以看到当mysql 通过getObject 接口获取数据时,会将大于0 的数字返回为true;而这种情况是因为mysql的默认jdbc连接参数 tinyInt1isBit=true导致的,当 tinyint(1)时通过getObject 获取出的数据为boolean
在这里插入图片描述
在这里插入图片描述
对比达梦的测试结果getObject 获取的值中,数据库类型为bit时返回boolean类型,数据库类型为tinyint时返回值类型为int 数字,当然也可以使用隐式方式将返回结果转变为数字或者boolean类型

对于使用数据库过程中,个人倾向于“O式用法”即要类型一致,boolean就用bit类型存储,时间类型用timestamp 而非字符串;但是实际的使用过程中因为各种原因,仅关注这个模块是否可以跑起来,跑起来就完事大全,这样看似省事,但其实隐藏了其他的问题

对于数据库来说,从数据库中读写数据往往涉及到类型转换,那么数据库是怎么在驱动层制定类型转换的规则,又如何在驱动层完成类型的校验。待我有空 我再去研究研究

参考链接

https://dev.mysql.com/doc/connector-j/en/connector-j-connp-props-result-sets.html#cj-conn-prop_tinyInt1isBit
https://dev.mysql.com/doc/connector-j/en/connector-j-reference-type-conversions.html
https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
https://eco.dameng.com/document/dm/zh-cn/pm/dm_sql-introduction.html#1.4.1%20%E5%B8%B8%E8%A7%84%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B

http://www.yayakq.cn/news/520164/

相关文章:

  • 外贸网站是用什么软件做的网站建设收费标准新闻
  • 网站asp文件只读seo建站营销
  • 徐州制作网站软件什么网站招聘外国人做兼职
  • 英文网站模板响应式网站检测工具
  • 洮南市城乡和住房建设局网站黄冈市建设局网站
  • 网站回答问题app怎么做品牌设计公司成都
  • 湖南专业网站建设服务淘宝做任务网站
  • 门户网站建设情况golang 网站开发 教程
  • 永城网站设计公司杭州注册公司流程是怎样的
  • 旅游网站建设方法的探讨建网站商城有哪些公司
  • 佛山设计网站自建站跨境电商
  • 比较好的网站开发框架网站评论做外链
  • 网站建设教程哪家公司好wordpress 优酷 html5
  • 临淄哪里做网站wordpress模板目录
  • 动态链接做网站外链图hao123网站难做吗
  • 新乡百度网站优化排名asp网站免费
  • 旅游网站网页设计报告苏州的建筑公司网站
  • 福州网站建设推广平台特斯拉公司的发展历程
  • 都兰县公司网站建设网址怎么注册
  • 网站建设要素的核心内容网站收录怎么做
  • 局域网网站建设步骤wordpress采集软件
  • 安徽省港航建设投资集团网站网站宣传片的创意
  • 微信网站建设和维护报价表北京做网站的公司排名
  • 房山石家庄网站建设专门做有机食品的网站
  • 爱淘苗网站开发模式四方区企业型网站建设
  • 莱芜有需要制作网站的公司吗wordpress修改主题
  • 网销网站建设流程wordpress功能最全的免费主题
  • 洛阳工程建设信息网站关于网站建设的网站有哪些
  • 软件工程师证书有哪些网站关键词优化排名推荐
  • 国外常用的网站开发系统一个新手如何推销产品