SQLException: #22001你知道这个错误码吗
做一个积极的人
编码、改bug、提升自己
我有一个乐园,面向编程,春暖花开!
文章目录
- java.sql.SQLException: #22001
- 结论
- 问题排查
- 解决
- 自己的一点小思考
java.sql.SQLException: #22001
java.sql.SQLException: #22001at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:22
报错,没见过,一天两个sql爆出了这个错误! 然后发现直接去搜 java.sql.SQLException: #22001
竟然没有 能匹配的帖子。自己整理一篇,方便后续回顾,也希望帮助到需要的伙伴!
结论
-- 表字段长度
`desc` varchar(255) DEFAULT NULL COMMENT '描述'
--长度884
职场上没有谁是永远靠得住的,正如西方名言“没有永远的朋友,也没有永远的敌人,只有永远的利益”。我们要想让别人靠得住,首先是自己站得住。如果自己站不住,别人一定靠不住。你自己不懂得如何保护自己,别人也不好多管闲事,自然帮不了你。
在职场什么最重要,让你成为一个璀璨的星星,答案就是:核心竞争力。如果说你技术好,比你技术好的多的是,如果说你经验丰富,比你丰富的人多的去。所以我们的核心竞争力是什么呢?记得我的上司给我说过这样一句话:”如果你的理念独一无二和略胜一筹的话,再加上稍稍的技术那就是你在别人面前可以竞争的资本“。我们的亮点也就在这。学会一种理念,超越别人思维的理念,你就是耀眼的金子。
某些字段长度大于表字段的长度,导致执行sql的时候,报错!
我遇到的问题是因为是老的项目,前端对输入的内容没有做任何校验,后台也没有相应的校验,导致不符合业务格式的数据能够通过代码层层逻辑,最终撞到数据库的南墙,头破了,"爆出"错误!
注:
细心的伙伴可能已经看出,上面这个字段desc是mysql的一个关键字。建议不要使用!
阿里巴巴明确代码规范手册,Mysql数据库 >> 建表规约:
4、【强制】禁用保留字,如 desc 、 range 、 match 、 delayed 等,请参考 MySQL 官方保留字
问题排查
1、首先通过报错信息找到具体出现错误的代码行,我这里出现错误是因为有一行更新数据 的sql 报出的错。
2、知道具体的行数后,通过debug或者打印(查看)日志的方式打印出需要更新的数据。
3、通过打印的数据和数据库字段值进行比对。看一下是哪个字段出现的问题。
解决
根据实际业务进行修改,如果实际业务的确需要保存那么长的数据,则修改字段长度。 否则对数据进行检验,不允许用户填写这么长的内容。
自己的一点小思考
1、如果发现这个问题,看一下是不是之前设计表的时候,字段长度没有考虑好,长度不符合实际业务需求。
2、如果是长度设计合理,那在编写代码的时候,一定要对用户输入的内容做检验(前端+后台),永远不要相信用户的输入内容!!!
谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!
不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!
博客首页 : https://aflyun.blog.csdn.net/
愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人
© 每天都在变得更好的阿飞云
SQLException: #22001你知道这个错误码吗相关推荐
- mysql 22001_SQLException: #22001你知道这个错误码吗
java.sql.SQLException: #22001 结论 问题排查 解决 自己的一点小思考 java.sql.SQLException: #22001 java.sql.SQLExceptio ...
- SQLException错误码
这里说的错误码是指SQLException.getErrorCode()返回的int类型错误码. 比如常见的有: // 1049 Unknown database // 1060 Duplicate ...
- MySQL 5.7 服务端 错误码 (机翻)
官方文档:https://dev.mysql.com/doc/mysql-errors/5.7/en/server-error-reference.html MySQL服务器将一些错误消息写入其错误日 ...
- Objective-C错误码
NSMachErrorDomain 头文件目录:/usr/include/mach/kern_return.h #define KERN_SUCCESS 0#define KERN_INVALID_A ...
- [微信官方文档] 小程序-错误码信息与解决方案表
错误码信息与解决方案表 错误码是通过binderror回调获取到的错误信息. 代码 异常情况 理由 解决方案 1000 后端错误调用失败 该项错误不是开发者的异常情况 一般情况下忽略一段时间即可恢复. ...
- 解决微信H5获取SDK授权报错提示errMsg: “config:fail,Error: 系统错误,错误码:63002,invalid signature [20200908 22:17:17][]“
如果常规检查都做过可以仔细看下微信开放文档 这个里面的报错原因 如果都不是那么极有可能是(恭喜你!看样子你的H5页面日活人数还蛮多[呲牙]) 获取腾讯微信平台access_token超过每日默认上限2 ...
- 【FFmpeg】ffmpeg中函数返回的错误码:AVERROR及AVERROR_*
1.AVERROR FFmpeg的错误码大部分使用的PIOSIX标准中错误码的负值. AVERROR定义在文件 FFmpeg-n4.2.1/libavutil/error.h 中 #define AV ...
- 【数据库】mysql报错 编码码1130 和错误码1146
1.错误编码1130 问题:1130-Hose'172.16.12.129'is not allowed to connect to this MySQL server 原因:MySQL服务器没有创建 ...
- 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...
最新文章
- linux 系统权限 数字含义
- 史上最全的CSS hack方式一览(转)
- Windows 环境下安装redis 及其PHP Redis扩展
- 科大星云诗社动态20210202
- 分布式系统基本副本协议
- git登录相关操作梳理
- Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
- 豆瓣镜像源的使用与pip包版本控制
- Java多态形式_Java多态
- Java之JvisualVM简介
- linux内核网桥源码,Linux-kernel网桥代码分析(二)
- sop流程图模板_SOP模板-标准操作流程编写程序.doc
- 将文字定位到浮动图片上|CSS
- thinkphp6 使用PhpOffice导入Excel表格(上传文件)
- MySQL自定义函数和存储过程
- python中字典的使用_python中的字典用法大全
- 6.oop-类和对象
- 神技—终端显示Linux系统信息
- b500k电位器引脚接法_电位器的作用以及接线方式,电位器的应用场合、选用原则...
- Windows+L键不能锁屏解决方案