项目原本查的oracle,因业务需要查询mysql,在本地一番配置后,启动项目是可以通过输入中文模糊查询的。下面给出一些配置文件。
jsp页面、java代码:
一番配置以及代码调试之后,本地起来得到的效果如下:
但是在weblogic(uat测试环境)部署之后,中文就是查询不出来,数字和英文或者空白都可以查询出来。展示如下:
能查出来,说明数据源配置的没有问题,只是中文查询不出来,首先想到的乱码。在controller也是加了防止乱码的代码,结果也不行,接着是在linux上打日志,在控制台上输出也是中文。
下面也是找了好久的原因,问了大佬,慢慢排查。
然而这样操作之后,仍然没有成功,
最后抱着电脑请教大佬,在weblogic操作页面,将数据源的url经过一番调整,把amp去掉,重启服务,发现成功了,成功了。。。。。
真的是坑啊!
大佬说是amp是转义字符,通常是写在xml里面的,在weblogic上配置不应该加,可能会导致后面的utf-8失效了。另外还指出一个细节优化,每次键盘打一个字符,就会去模糊查询数据库,如果数据量大会非常耗性能,这就需要在前端控制,输入完一个字后再去调用。