在顶目中碰到PreparedStatement执行含有中文字符的sql语句时返回的结果集为0的问题,而该sql语句在MySQL数据库直接执行能够得到正确结果。 调试时发现PreparedStatement对象中的sql语句中的中文字符变成了???? 。原来这是配置数据源时没有指定编码造成的: jdbc:mysql://192.168.6.151/diff_gjj。
改为jdbc:mysql://192.168.6.151/diff_gjj?characterEncoding=utf8指定数据源编码后就可以解决该问题。