代码是这样的:

HashMap<String, Object> param = new HashMap<String, Object>();
param.put("ystJg", ystJg);
List<xtglbm> ystjg = bd.getYstJg(param);

Mapper是这样的
<select >} connect by m.sjmid = PRIOR m.MID
</select>

用Map put变量查询的时候,用${}

 

借鉴的文章:

今天用mybatis查询语句的时候,控制台输出的sql语句可以在plsql里面可以正确执行,但是查询出来就是没有数据。
原查询语句如下:(为了保密性,将敏感的包名给马赛克了。)

Mybatis查询在数据库中有但在代码中没有

此sql可以在plsql中正确执行,但是查询不到数据。

解决办法是:将查询条件中的“#”替换成“$”.

原因如下:MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(自动在前后加单引号)也就是说,他把你传入的字符串并没有当做多个值,而是当做一个大的字符串,所以查询不到值)

而MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-09-21
  • 2021-09-28
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-02
  • 2022-12-23
  • 2021-04-22
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2021-10-20
相关资源
相似解决方案