<select statementType="STATEMENT" id="executeCountSql" resultType="int"
parameterType="String" flushCache="true" useCache="false">
${value}
</select>
你没有把条件值(#{policyId})传进去吧。parameterType="String"只是把你拼好的sql传进去了

解决方案 »

  1.   

    我想知道这一句能获得真实执行的sql么,就是把问号替换成真实参数的sql,我测试的是获取不到真实的sql,离职的架构师这样设计的,他认为这个能获取替换完参数的sql,然后传到一个通用的查询方法里,获得结果。
    我想知道这样是否可以行得通。
    String sql = getSqlSession().getConfiguration()
    .getMappedStatement(MappedStatement).getBoundSql(parameter)
    .getSql();
      

  2.   

    当你使用这个的时候:statementType="STATEMENT"
    映射SQL要这样写:
    SELECT * FROM MQ_POLICY_INFO  WHERE policyId=${policyId}
    没有预编译了,一次性发送到数据库执行。