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
uj5u.com熱心網友回復:
這么奇怪的嗎,資料庫連了不同的?uj5u.com熱心網友回復:
檢查過了,沒有連錯uj5u.com熱心網友回復:
資料庫中執行最終的的sql陳述句看結果是什么uj5u.com熱心網友回復:
引數型別錯了?uj5u.com熱心網友回復:
你的輸入是個物件 parameterType="com.sojson.common.model.AlAccountInfo"在where條件中直接使用了#獲取引數,所以可能沒有獲取到引數,查詢結果是0
可以嘗試輸入使用#(物件.屬性)的方式獲取 或者輸入改成map parameterType="java.util.Map"
uj5u.com熱心網友回復:
你再 navicate 執行的時候,引數沒加引號uj5u.com熱心網友回復:
應該不是資料型別的錯誤,數字型別的我經常直接這樣查.沒有錯的.你把你引數trim()一下試試.
uj5u.com熱心網友回復:
如果保證資料庫執行的sql陳述句跟你控制臺列印的一致,那我只能想到連了不同的資料庫
uj5u.com熱心網友回復:
輸入引數型別的問題uj5u.com熱心網友回復:
因為你的資料庫非空欄位有“ ”uj5u.com熱心網友回復:
導致了例外 所以回傳的結果為0uj5u.com熱心網友回復:
可能只傳進去一個引數uj5u.com熱心網友回復:
控制臺輸出日志:Parameters: 00000887(String), 10001045(String)引數型別是String,所以在sql中拼接引數時,要用單引號拼接。
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';
你可以把這個sql在navicate執行一下試試,應該count值也是0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/270349.html
標籤:Java EE
