【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 ...
随机推荐
- Linu部署服务启停脚本
Linux项目部署启停 WEB应用(WAR包)部署 实际开发中,难免遇见新业务项目构建.项目重构(重新优化整个项目的架构,相当于重写),也可能是项目拆分多个模块,也可能部分拆分,但项目的模块化分离,就 ...
- SpringBoot系列(六)如何使用 MockMvc 或者 RestTemplate 发请求进行单元测试
本文主要功能: 对最简单的/hello接口,如何编写单元测试用例. 1.首先,要引入以下依赖 <dependency> <groupId>org.springframework ...
- C# .NET MVC 表单提交前校验数据等
页面上写2个button,一个普通button,另一个是submit,submit的这个隐藏.校验函数写在普通button里,普通button click函数中去提交表单. 页面: <input ...
- Vue 3与ESLint、Prettier:构建规范化的前端开发环境
title: Vue 3与ESLint.Prettier:构建规范化的前端开发环境 date: 2024/6/11 updated: 2024/6/11 publisher: cmdragon exc ...
- shiro有哪些组件?
a.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: b.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的 ...
- 前端React的事件机制
前端React技术框架的事件机制不同于常见的事件机制--原生事件,此文将介绍React的事件机制是什么,与原生事件的区别,以及这两种事件机制是否可以混用等.希望您在阅读这篇文章之后,能够对React的 ...
- Linux下Oracle11G数据备份恢复(RMAN)
数据库安装参考步骤1--14 https://www.cnblogs.com/baixisuozai/p/17852235.html #rman数据库备份脚本 #!/bin/bash PATH=$PA ...
- textFieldShouldReturn: 方法无效化!
问题描述 不管如何在键盘上点击return,textFieldShouldReturn:方法一直没有调用. 问题代码 @interface ViewController : UIViewControl ...
- k8s中的亲和性、污点与容忍(调度到不同的宿主机)
本文章并未经过严格实践,如有错误,辛苦指出. 背景 服务需要多副本,来保证高可靠.多活. 那么问题来了,假如这些副本都在同一个宿主机上,或者同一个交换机下-宿主机.交换机其中一项坏掉了,那多副本还有什 ...
- Xilinux PS与PL交互:裸机程序读写FPGA-REG
背景 当时在搞ZYNQ驱动的时候,出于TDD的思想,从最简单的功能开始验证.因此就涉及到了下面的需求. PL侧会提供寄存器地址供PS端读写,这部分的寄存器在PL侧作为Avalon的IP,对PS端来说, ...