【MySQL】Tinyint 类型问题
下发字段:
`DISTRIBUTION_STATUS` tinyint(1) DEFAULT '0' COMMENT '下发状态,0未下发,1已下发,2已作废',
Mybatis封装之后日志打印也确实是0数字:
<== Columns: PART_NO, PART_NAME, PART_NAME_EN, UNIT_CODE, MIN_PACKAGE, APPLICABLE_VEHICLE_TYPE, MODEL, QUANTITY_PER_CAR, PROVIDER_CODE, PROVIDER_NAME, PLAN_PRICE, CLAIM_PRICE, LIMIT_PRICE, NOT_TAX_INSTRUCT_PRICE, COST_SALES_PRICE, PRICE_ADD_RATE, IS_BATCH_OUT, PART_STATUS, IS_UNSAFE, IS_BACK, IS_C_SALE, IS_C_PURCHASE, IS_BATTERY, IS_DELETED, PART_VEHICLE_MODEL, IS_TRIPLE_GUARANTEE, IS_CLAIM, DISTRIBUTION_STATUS, IN_AMOUNT, REMARK, SUGGEST_RETAIL_PRICE_TAXED
<== Row: TEST-PART-NO-20, , null, null, 0.0000, 1003, 1003, 1, null, null, 51.5500, 424994.7600, 91.5500, 91.5500, 842876.2200, 0.0000, 10041001, 10041001, 10041001, 10041001, 10041001, 10041001, 10041001, 0, null, 10041001, 10041001, 0, 521564.5000, 这是备注信息333, 487138.6400
但是返回到前端的JSON数据就不是了:
{
"resultCode": 200,
"errMsg": null,
"elapsedMilliseconds": 0,
"data": {
"records": [
{
"IS_TRIPLE_GUARANTEE": 10041001,
"PART_STATUS": 10041001,
"IS_DELETED": 0,
"PART_NO": "TEST-PART-NO-20",
"APPLICABLE_VEHICLE_TYPE": "1003",
"MIN_PACKAGE": 0,
"IS_CLAIM": 10041001,
"PRICE_ADD_RATE": 0,
"LIMIT_PRICE": 91.55,
"PART_NAME": "",
"PLAN_PRICE": 51.55,
"IS_C_SALE": 10041001,
"DISTRIBUTION_STATUS": false,
"IS_BATCH_OUT": 10041001,
"REMARK": "这是备注信息333",
"PART_NAME_EN": null,
"PROVIDER_NAME": null,
"UNIT_CODE": null,
"IS_BATTERY": 10041001,
"IS_UNSAFE": 10041001,
"MODEL": "1003",
"QUANTITY_PER_CAR": "1",
"NOT_TAX_INSTRUCT_PRICE": 91.55,
"CLAIM_PRICE": 424994.76,
"IN_AMOUNT": 521564.5,
"IS_C_PURCHASE": 10041001,
"SUGGEST_RETAIL_PRICE_TAXED": 487138.64,
"COST_SALES_PRICE": 842876.22,
"PROVIDER_CODE": null,
"IS_BACK": 10041001,
"PART_VEHICLE_MODEL": null
},
我的解决办法是用map的computeIfPresent方法处理:
maps.forEach(map -> map.computeIfPresent("DISTRIBUTION_STATUS", (k, v) -> {
if (v.equals(true)) return 1;
else if (v.equals(false)) return 0;
return v;
}));
虽然显示是0,但是可能Java里面JDBC封装成了TRUE & FALSE,
这里用equals方法做了个判断,让值重新覆写一遍,但是2的情况应该是正常的
这里试试看看:
UPDATE tm_part_info SET DISTRIBUTION_STATUS = 2 WHERE PART_NAME = '测试配件19'

结果是可以的,那就说明1和0会和TRUE & FALSE 匹配上,要么就是框架做了自动装箱的处理
其他值则正常返回
【MySQL】Tinyint 类型问题的更多相关文章
- mysql tinyint bit
Java bit 对应 mysql tinyint(1) false = 0 ,true = 1.
- mysql tinyint
在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127.无符号的范围是0到255(见官方<MySQL 5.1参考手册>http://dev.mysql.com ...
- Entity Framework 5中遇到的 mysql tinyint(1) 转换为 bool 的问题 (我用的是VS2013中的EF5版本)
数据有一个字段,用的是 tinyint 长度是1 默认值为0 , 当用vs2013中的 EF5来生成 实体模型之后,看到这个列被标识为 bool 类型 Mysql官方参考文档关于布尔类型的说明: ...
- Mysql tinyint长度为1时在java中被转化成boolean型
MySql 中的tinyint(1)的使用 在MySql中如何定义像Java中类型的Boolean类型数据..其实,mysql中 是没有直接定义成Boolean这种数据类型. 它只能定义成 tinyi ...
- sqooq同步mysql tinyint类型到hive的一个诡异问题
sqoop job运行完成之后,发现为tinyint类型的一类始终没有值,经检查发现上游mysql有值,再查看hdfs文件,发现这列被抓换为了boolean类型 搜索一下发现有人碰到过了,以下原文来自 ...
- MySQL: tinyint(1) 和 tinyint(4), char 和varchar
1.BIT[M] 位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1 2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4,占1个字节 很小的整数 ...
- FireDAC 如何按整型(Byte)读取 MySQL TinyInt(1) 类型字段?
最近使用 MySQL 发现 FireDAC 中查询 TinyInt(1) 字段结果是 Boolean 类型,这并不是我想要的结果,而TinyInt(1)的范围是-128-127之间,如何按整型读取呢? ...
- Spark JDBC系列--Mysql tinyInt字段特殊处理
当spark取出表的scheme中,类型名为tinyint的字段,会被处理为Boolean型.而mysql中tinyint的sqlType都会默认处理为bit,所以如果数据库中的这类字段中,存储了0. ...
- MySql数据类型问题
1. mysql时间函数 DATE_ADD(now(), INTERVAL 1 DAY) AS tomorrow DATE_SUB(now(), INTERVAL 1 DAY) AS yesterda ...
- mysql tinyint smallint mediumint int bigint
类型 存储所占空间 (无论显示多少位) (单位 字节/bytes) 存储数据范围 最大显示长度 tinyint 1 -128 ~ 127 signed 0 ...
随机推荐
- GNU gprof分析C性能
参考 gprof的简单使用-anthony1983-ChinaUnix博客 Top (GNU gprof) (sourceware.org) c - Enable and disable gprof ...
- Qt-数据库操作MySql
1 简介 参考视频:https://www.bilibili.com/video/BV1XW411x7NU?p=87 说明:本文简单说明在Qt中操作数据库,用MySql数据库进行试验. Qt 提供了 ...
- .NET 8 IApplicationBuilder详解
在上节中我们已经得知 WebApplication 实现了 IApplicationBuilder,我们浅谈了其pipe特质和构建方法,本节中将深入了解 ApplicationBuilder 以窥探 ...
- v-once指令 v-if和v-show
v-once指令 只渲染元素和组件一次,之后元素和组件将失去响应式功能 v-if和v-show 根据表达式的布尔值(true/false)进行判断是否渲染该元素 注:v-if 有更高的切换开销,而 v ...
- skywalking启动配置agent及数据储存对数据源(mysql,es)版本要求
skywalking启动配置agent及数据储存对数据源(mysql,es)版本要求 # skywalking-agent.jar的本地磁盘路径-javaagent:D:\SkyWalking\sky ...
- vue目录文件结构
my-vue-app/ ├── node_modules/ # 依赖的第三方模块 ├── public/ # 公共文件,不会被打包 │ ├── index.html # 应用的入口 HTML 文件 │ ...
- hive第二课:Hive3.1.2分区与排序以及分桶(内置函数)
Hive3.1.2分区与排序(内置函数) 1.Hive分区(十分重要!!) 分区的目的:避免全表扫描,加快查询速度! 在大数据中,最常见的一种思想就是分治,我们可以把大的文件切割划分成一个个的小的文件 ...
- qt中的 connect 函数
1.connect()函数实现的是信号与槽的关联. 注意:只有QO bject类及其派生的类才能使用信号和槽的机制 2.函数原型 static QMetaObject::Connection conn ...
- PySide6之多线程
一.QThread 方法1:子类化创建多线程 创建子线程,继承自QThread类 在子线程中自定义信号 在子线程中重写 run() 方法,进行信号的触发 在主线程中实例化子线程 在主线程中对子线程的信 ...
- 嵌入式基础测试手册——基于NXP iMX6ULL开发板(3)
基于测试板卡:创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成.核心板经过专业的PCB Layout ...