MyBatis的“记录超长”
使用MyBatis的时候,发现异常“记录超长“,原因是字段超长,后来将字段类型改为TEXT问题解决。记录下来是因为在开始时候认为是因为SQL超长导致的该异常;但是并没有去验证,其实验证这个非常简单,只要是能够在客户端执行一下即可(客户端是没有长度限制的),如果在客户端报异常,那么就是SQL本身的问题,而不是SQL长度问题。
所以,对于定位问题首先要确认确认问题,否则问题的解决可能会使南辕北辙。比如我在之前解决这个问题的时候就尝试着增加MyBatis(JDBC)的长度,但是都不奏效,此时就应该立即改弦易辙。
这个问题的解决,其实有赖于老杜的提醒:
1.SQL先在客户端执行;
2.有问题首先看文档;有问题首先尝试去官方文档、网站寻找解决方案。
3.不要事实而非,在决定使用TEXT之前,我曾经一度想要使用BLOB,因为之前看到的一篇博客中曾经有过这个名词(其实BLOB是二进制的意思),我怎么可能上去就选择BLOB呢?
看异常信息尽量看全栈
今天看到了一个player的异常,初始化全局变量失败;但是向下看其实是因为jdk版本原因造成的;之后可能因为什么事情打岔,我忘记了这个异常问题,可能是和许伟讨论大飞云带的话题吧。
回来继续解决问题,因为忘记了刚才的解决步骤,我又尝试直接从runfront脚本中直接拿出来一段执行,结果得到的不是全栈,而是第一段中讲的第一个全局变量初始化异常,于是纠结半天;
拿出来写,是因为提醒自己,看一场一定要看全栈,最外面的很可能是一个经过封装的外部异常,只有看到根了,才能够定位问题。