【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 ...
随机推荐
- docker使用Open Policy Agent(OPA)进行访问控制
目录 一.系统环境 二.前言 三.Open Policy Agent 简介 四.Rego 语言简介 五.配置基本环境 六.docker安装OPA插件 6.1 安装docker 6.2 docker安装 ...
- (八十八)c#Winform自定义控件-转子
官网 http://www.hzhcontrols.com/ 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kw ...
- 使用itextPDF实现PDF电子公章工具类
使用itextPDF实现PDF电子公章工具类 一.制作公章 在线网站:印章生成器 - Kalvin在线工具 (kalvinbg.cn) 然后对公章进行下载保存 盖章图片: 二.生成数字签名 2.1: ...
- vuex中的数据在页面刷新后数据消失
用sessionstorage 或者 localstorage 存储数据 存储: sessionStorage.setItem( '名', JSON.stringify(值) ) 使用: sessio ...
- 在线RSA公私钥PKCS格式互转工具
在线公私钥PKCS格式转换,支持公钥PKCS1与PKCS8格式之间相互转换,私钥PKCS1与PKCS8格式之间相互转换:PKCS1定义RSA公开密钥算法加密和签名机制,PKCS8描述私有密钥信息格式, ...
- http请求方式GET,POST工具类RestTemplate
http请求方式GET,POST工具类RestTemplate import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serial ...
- IDEA生成类和方法注释模板详细说明 绝对好用
吐槽 今天心血来潮,将使用了很久的IDEA旗舰版卸载了,想换社区版用一段时间,毕竟社区版开源免费.精简不卡顿,如果够用的话以后就省去了破解的烦恼,而且可以紧跟官网使用最新版 旧的IDEA配置忘记保存了 ...
- java多线程-2-概念和实现机制
知其然,而知其所以然! 在计算机领域,有多种操作系统,常见的有windows家族和unix/Linux家族,它们都支持多任务的计算模式. 它们实现多任务的机制是差不多的,这点在<<操作系统 ...
- Python 使用Matplotlib绘制可拖动的折线
Python 使用Matplotlib绘制可拖动的折线 效果图: 可以拖曲线上的点调整, 也可以拖旁边的sliderbar调整. 代码如下: import matplotlib.animation ...
- C#/.NET/.NET Core优秀项目和框架2024年6月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...