MySQL随机代码问题的分析与解决
交代背景:
实现的功能很简单,读dom4j的XML文件,然后将数据写入MySQL数据库(多表)由Spring和Hibernate。当然,整个流程由Spring控制事务完成,并且回滚异常。
现象:当写入数据库中一半的数据时,错误的信息是记录不是唯一的。
分析与操作:
检查自己的代码,使用hibernatetemplete春来保存数据,应该没问题的。
再次观察:这似乎是外键约束的一个问题,因为插入到外键的表中时,数据不会被输入。
分析与操作:
因为这是外键表的问题,我们首先应该确定外键表的内容是什么,因此我们手动更改数据库隔离级别来查看数据,这实际上是随机代码。
问:混沌代码是如何进入数据库的
分析与操作:
或者,当你读到XML时,它是一个随机代码或一个随机代码,当你给数据库写的时候。
现象:eclipse中没有随机代码问题。
分析与操作:
这说明程序中没有问题,而是数据库的问题,然后将数据库链接字符串转换为代码,然后对数据库进行修改,再对断点进行调试。
现象:数据库仍然是混乱的代码,但混沌代码的形式改变了吗现在是一片混乱。
分析与操作:
很明显,对编码格式的一系列修改操作已经生效,但尚未修改。请再次检查代码格式,没有发现问题。
这个问题一度陷入僵局…
请求帮助:秋季不要使用命令窗口。使用第三方客户端太麻烦了,所以用第三方客户端替换它。很奇怪,客户不会有问题。
分析与操作:
客户端在命令窗口中没有问题,这意味着数据库不是一个随机代码,而代码可能是命令行显示问题!再次测试数据导入-一切OK。
思考与总结:
现象:事实上,这个问题在所有代码的第一次修改之后就已经解决了,但是由于当时调试了断点,程序没有执行,所以数据库仍然混乱。
总结:
程序应该在每次调试时运行,模拟错误的上下文,而不是集中在错误本身上。
现象:在编码方面,有XML编码,dom4j的阅读和编码,数据库编码,数据库连接字符串中指定的编码,命令行窗口显示编码。其中那些没有注意到的问题不能得到解决(我不知道最后一个在这里)。
总结:
全局视图的含义是从开始到结束,掌握每个控制变量,并有意识地跳出环境做出假设。