做过一些查询的页面,总结一下经常会出现的注意点,以此为戒。血泪的bug,不要犯同样的错误。
对于日期,在前台接收的时候因为日期插件的格式化,用对象接收的话最好用String,而不是用Date 如果格式不对的话就会报400错误。
确定哪些字段要做成模糊的匹配,那些字段要做完全匹配。一般来说名称之类的可以做成模糊匹配。而工号之类的可以做成完全匹配。
前台的日期一般都是到天,也就是说没有时分秒的。如果按照两天之间的时间搜索,那么搜索的结果就是最后的日期之前的数据。例如,1号到30号的数据,查询到的其实是到29号的数据。所以需要在后台接受时间以后将截止日期设置为23点59分56秒。这样查询结果就没有问题了。
查询条件需要进行trim(),这个在后台校验和提交的时候都需要注意。
实现模糊查询的时候最好用instr() INSTR(字段名, 字符串)这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,当返回值大于零,就是找到了。这样的效率更高。
查询页面的连接不要忘记加上权限,如果没有权限报错的用户体验并不好。
页面的查询条件要做到和表格展示的表头文字格式一致。
如果页面涉及到第一次初始化加载和点击查询的加载,那么就会有两次加载的过程,更改一种查询的时候确定不要遗落。