昨天出现了一个问题,初始化结果集,我直到今天上午才发现这个问题,其实这个问题我之前已经栽过但是我没有好好的总结,结果有重重的摔了个跟头,我仔细运行了sql结果能够运行,控制台也看到了运行的sql,这说明数据已经被成功的发送到后台,但是前台确没有被解析的数据,这是为何?苦苦思考,找不到愿意,后来重新copy一个文件,开始删除一些东西,保证最基本的功能,后来发现结果加入一条sql就出问题,删除这条sql就好了,看来问题的焦点就在此sql,可是此sql能在pl/sql中运行,那么也就是说在将结果集塞入到ResultKeyList的时候,再解析的时候出了问题,然而我们都是通用trustForm.jsp来解析ResultKeyList,那么是什么导致不能够正确的解析,问题就集中到解析格式的问题上了,在应用函数的时候应该给以它一个别名,以提供解析,在Row中都是以map形式对应的。
通过此次错误总结教训如下:
- 当发现问题,一定要镇静,而且亢奋,因为错误才是提高自己的基石。
- 计算机是没有二义的,首先排除一些计算机的bug可以通过重新发布,删除临时文件等。
- 理清数据流通的线路,暴露出现问题的最可疑之处
- 删除法,排除法 是个暴露问题的很好的办法,当有以大堆的时候,可保持最简单的东西来测试程序的流通性
- 不犯二错,当栽过以次就要认真总结,行成良好的编码习惯,避免出现一些低级但是不容易发现的错误。
有些错误没有语法错误,但是功能错误,很难发现,因此要良好的编码习惯,并且要在大脑里根深蒂固。
- if(==) 很容易只写一个=
- 'str'.equlas() ''.equals 很容易写成 == 注意==只适合基本类型
- null 还是'null'要注意
- a= (statement)? x:y 是个表达式
- 应用函数一定要写别名