zoukankan      html  css  js  c++  java
  • Mybatis查询在数据库中有但在代码中没有

    代码是这样的:

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

    Mapper是这样的
    <select id="getYstJg" parameterType="java.util.HashMap"
    resultType="com.aisino.nssb.core.xtglbm.model.xtglbm">
    select * from BM m where m.BZ = '0' start with
    m.MID= ${ystJg} connect by m.sjmid = PRIOR m.MID
    </select>

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

    借鉴的文章:

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

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

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

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

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

  • 相关阅读:
    SQL Server连接Oracle详细步骤
    SQLServer2012连接mysql5.5
    SQL Server的链接服务器技术
    2键盘录入Scanner
    1标识符
    电脑从新分盘(软件)
    Tomcat安装配置
    windows下安装和配置多个版本的JDK
    Myeclipse2014的安装
    Could not find acceptable representation
  • 原文地址:https://www.cnblogs.com/lonely-buffoon/p/5639636.html
Copyright © 2011-2022 走看看