我有个SQL语句类似于String sql = "select * from table1 where name like '%" + ChineseName + "%'";,里面有中文的模糊匹配的问题,我在java中把此SQL语句在console窗口中输出来,并且复制到Oracle中去执行,可以查询出结果,可是在java中用
getJdbcTemplate().queryForList(sql);这条语句去查询,怎么也查询不到结果,但是如果换成hibernate的方式并且要用占位符才可以查询出结果,页面传过来的参数也不是乱码,Oracle里的中文也不是乱码,请问这是怎么回事啊?请求高手帮我解决,感激不尽。

解决方案 »

  1.   

    你在java程序里给这个ChineseName变量赋值了没有?
    你跟踪下java里的程序 看看得到什么样的sql语句
      

  2.   

    spring的东西吧,看看spring的那个与数据库相关的bean是否一致
      

  3.   

    通过什么方式连接数据库的?
    建议通过OCI来连接。
      

  4.   

    首先谢谢楼上各位的回复。这个变量是从页面传过来的,在java程序中没有另外赋值,打印出来的SQL语句在Oracle里面直接查询是可以查询出结果的。