dao:
`int selectbalanceRecordByMbIdCount(AlAccountInfo alAccountInfo);`mapper:
`<select id="selectbalanceRecordByMbIdCount" parameterType="com.sojson.common.model.AlAccountInfo" resultType="java.lang.Integer">
      SELECT COUNT(*)
      FROM admin_balance a
      LEFT JOIN al_member b ON  b.id = a.memberId
       LEFT JOIN al_shop c ON c.id = a.shopId
      WHERE a.memberId =#{med} AND a.organizationId =#{organizationId}
    </select>
`
navicate 执行 :
SELECT COUNT(*)
      FROM admin_balance a
      LEFT JOIN al_member b ON  b.id = a.memberId
       LEFT JOIN al_shop c ON c.id = a.shopId
      WHERE a.memberId =00000887 AND a.organizationId =10001045
结果count(*)  6控制台输出日志:
[DEBUG][2018-01-27 11:10:19,443][org.springframework.jdbc.datasource.DataSourceTransactionManager]Acquired Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1f99d6fc] for JDBC transaction
[DEBUG][2018-01-27 11:10:19,443][org.springframework.jdbc.datasource.DataSourceUtils]Setting JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1f99d6fc] read-only
[DEBUG][2018-01-27 11:10:19,451][org.springframework.jdbc.datasource.DataSourceTransactionManager]Switching JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1f99d6fc] to manual commit
[DEBUG][2018-01-27 11:10:19,451][druid.sql.Connection]{conn-10003} setAutoCommit false
[DEBUG][2018-01-27 11:10:19,461][org.mybatis.spring.SqlSessionUtils]Creating a new SqlSession
[DEBUG][2018-01-27 11:10:19,461][org.mybatis.spring.SqlSessionUtils]Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6c7f4067]
[DEBUG][2018-01-27 11:10:19,462][org.mybatis.spring.transaction.SpringManagedTransaction]JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1f99d6fc] will be managed by Spring
[DEBUG][2018-01-27 11:10:19,462][com.sojson.common.dao.MemberInfoMapper.selectbalanceRecordByMbIdCount]ooo Using Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1f99d6fc]
[DEBUG][2018-01-27 11:10:19,462][com.sojson.common.dao.MemberInfoMapper.selectbalanceRecordByMbIdCount]==>  Preparing: SELECT COUNT(*) FROM admin_balance a LEFT JOIN al_member b ON b.id = a.memberId LEFT JOIN al_shop c ON c.id = a.shopId WHERE a.memberId =? AND a.organizationId =? 
[DEBUG][2018-01-27 11:10:19,462][druid.sql.Statement]{conn-10003, pstmt-20059} created. 
SELECT COUNT(*)
      FROM admin_balance a
      LEFT JOIN al_member b ON  b.id = a.memberId
       LEFT JOIN al_shop c ON c.id = a.shopId
      WHERE a.memberId =? AND a.organizationId =?
[DEBUG][2018-01-27 11:10:19,462][com.sojson.common.dao.MemberInfoMapper.selectbalanceRecordByMbIdCount]==> Parameters: 00000887(String), 10001045(String)
[DEBUG][2018-01-27 11:10:19,462][druid.sql.Statement]{conn-10003, pstmt-20059} Parameters : [00000887, 10001045]
[DEBUG][2018-01-27 11:10:19,462][druid.sql.Statement]{conn-10003, pstmt-20059} Types : [VARCHAR, VARCHAR]
[DEBUG][2018-01-27 11:10:19,465][druid.sql.Statement]{conn-10003, pstmt-20059} executed. 2.514853 millis. 
SELECT COUNT(*)
      FROM admin_balance a
      LEFT JOIN al_member b ON  b.id = a.memberId
       LEFT JOIN al_shop c ON c.id = a.shopId
      WHERE a.memberId =? AND a.organizationId =?
[DEBUG][2018-01-27 11:10:19,465][druid.sql.ResultSet]{conn-10003, pstmt-20059, rs-50063} open
[DEBUG][2018-01-27 11:10:19,465][druid.sql.ResultSet]{conn-10003, pstmt-20059, rs-50063} Header: [COUNT(*)]
[DEBUG][2018-01-27 11:10:19,465][druid.sql.ResultSet]{conn-10003, pstmt-20059, rs-50063} Result: [0]
[DEBUG][2018-01-27 11:10:19,465][com.sojson.common.dao.MemberInfoMapper.selectbalanceRecordByMbIdCount]<==    Columns: COUNT(*)
[DEBUG][2018-01-27 11:10:19,465][com.sojson.common.dao.MemberInfoMapper.selectbalanceRecordByMbIdCount]<==        Row: 0
[DEBUG][2018-01-27 11:10:19,465][druid.sql.ResultSet]{conn-10003, pstmt-20059, rs-50063} closed

解决方案 »

  1.   

    数据库中执行最终的的sql语句看结果是什么
      

  2.   

    你的输入是个对象 parameterType="com.sojson.common.model.AlAccountInfo" 
    在where条件中直接使用了#获取参数,所以可能没有获取到参数,查询结果是0可以尝试输入使用#(对象.属性)的方式获取 或者输入改成map  parameterType="java.util.Map"
      

  3.   

    你再  navicate  执行的时候,参数没加引号
      

  4.   

    应该不是数据类型的错误,数字类型的我经常直接这样查.没有错的.
    你把你参数trim()一下试试.
      

  5.   

    如果保证数据库执行的sql语句跟你控制台打印的一致,
    那我只能想到连了不同的数据库