做一个积极的人

编码、改bug、提升自己

我有一个乐园,面向编程,春暖花开!

java.sql.SQLException: #22001

java.sql.SQLException: #22001
at 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、如果是长度设计合理,那在编写代码的时候,一定要对用户输入的内容做检验(前端+后台),永远不要相信用户的输入内容!!!


谢谢你的阅读,如果您觉得这篇博文对你有帮助,请点赞或者喜欢,让更多的人看到!祝你每天开心愉快!


不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

愿你我在人生的路上能都变成最好的自己,能够成为一个独挡一面的人

© 每天都在变得更好的阿飞云

SQLException: #22001你知道这个错误码吗的更多相关文章

  1. 腾讯开放平台 手机QQ登录 错误码:110406 解决办法

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4204284.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 腾讯开发平台 ...

  2. Windows错误码解析

    C或者C++开发肯定经常会遇到各种错误码,由于每个错误码只是一个枚举或者一个整形数值,调试或者输出日志的时候,无法知道这个错误码的具体含义,这时候就需要将此错误码解释出来.对于自己定义的错误码,可以通 ...

  3. win7中 SQL server 2005无法连接到服务器,错误码:18456

    win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆  结果登陆不上去.. 选中SQL Server Management Stud ...

  4. Xcode奔溃错误码

    在这里了解一下XCode用来表示各种崩溃类型的术语,补充一些这方面的各知识.崩溃通常是指操作系统向正在运行的程序发送的信号,所以我们在查看崩溃日志时,常常看到如下错误摘要:Application re ...

  5. 微信支付:curl出错,错误码:60

    如下是运行微信支付测试代码时出错代码: Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘ in ...

  6. 微信支付curl出错及错误码解决方案

    1. curl错误码6 出现场景 PHP Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:6' in ...

  7. 【Fine原创】常见的HTTP错误码的具体含义整理

    常见的HTTP错误码的具体含义     "100" : Continue   客户端应当继续发送请求. "101" : witching Protocols   ...

  8. 蓝牙-HCI错误码列表

    错误码定义: /* Success code */ #define HCI_SUCCESS 0x00 /* Possible error codes */ #define HCI_UNKNOWN_HC ...

  9. 黄聪:微信支付错误两个问题的解决:curl出错,错误码:60

    如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroo ...

随机推荐

  1. 【spring源码分析】IOC容器初始化——查漏补缺(三)

    前言:本文分析InitializingBean和init-method方法,其实该知识点在AbstractAutowireCapableBeanFactory#initializeBean方法中有所提 ...

  2. 移动端——页面点击( touchend -> click)

    手机端页面好多要注意的,点击事件就是其中一个: 在手机端页面中使用 click,安卓手机能正常实现点击效果,可是苹果手机不能点击:用 touchend 代替 click,苹果手机中能点击,但是可能出现 ...

  3. Java同步数据结构之ConcurrentLinkedDeque

    前言 由于LinkedBlockingDeque作为双端队列的实现,采用了单锁的保守策略使其不利于多线程并发情况下的使用,故ConcurrentLinkedDeque应运而生,它是一种基于链表的无界的 ...

  4. Tornado实现监控数据实时展示

    前言: It has been a while since I last updated my blogs. 使用Tornado开发一个实时监控信息系统,其中包括 CUP.内存.网卡.磁盘使用率. 涉 ...

  5. 浅谈smarty模板的mvc框架

    最近接触了一个大项目,php做的后台管理,融合了smarty模板+mvc框架+phpcms内容管理,,,这个项目简直就是php的精华,于是小编大哥对项目小女子产生了兴趣,打算一点一点把她征服.现在小吃 ...

  6. 005-log-slf4j

    一.概述 SLF4J = Simple Logging Facade for Java.     author: Ceki Gülcü     SLF4J,即简单日志门面(Simple Logging ...

  7. Qt编写数据可视化大屏界面电子看板8-调整间距

    一.前言 在数据可视化大屏界面电子看板系统中,前期为了使用目标客户机,调整间距是必不可少的工作,QMainWindow中的QDockWidget,会默认生成布局和QSplitter调整宽高大小,鼠标移 ...

  8. pip安装软件报错 utf-8 code can't decode byte 0xcf in position7

    pip安装软件报错 utf-8 code can't decode byte 0xcf in position7 根据错误提示的路径找到__init__.py文件 根据错误提示的最后几句话找到对应的行 ...

  9. Bash Shellshock(CVE-2014-6271)破壳漏洞测试

    0x01 漏洞原理 Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以"(){"开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行 ...

  10. Data - 数据挖掘的基础概念

    主要内容来自于<微信公众号:程SIR说> 1 数据挖掘 数据挖掘(Data Mining,简称DM),是指从大量的数据中,挖掘出未知的且有价值的信息和知识的过程. 数据挖掘是一门交叉学科, ...