在近期開發中, 使用mybatis的時候發現了一個奇怪的現象, 前提是一個簡單的條件, 讓 表A.欄位1 between 表B.欄位1 and 表B.欄位2 之間, 然后當我 邏輯完成之后
在測驗之時,發現結果無論如何也不對,
在mybatis中有 6條資料
在mysql中有 7 條資料
于是就開始查找原因. 將mybatis日志中執行的sql陳述句在 mysql中執行, 發現有7條資料, 在代碼中就只有6條資料, 這讓我疑惑不已
接下來我找到了 表結構 發現 表B 的 欄位 1與欄位2的型別是 varchar, 一下子沒有反應過來.
(一般來說,將sql陳述句放入代碼之前. 都會在mysql 鏈接工具中寫好 然后在復制到 代碼中,改下引數. 所以大部分注意力都集中在了入參上)
那么 究竟是什么導致的這個問題呢? 導致在mysql工具中 可以 bewteen字串型別的數字,得出正確的結果
一樣的bewteen 放到 mybatis中就 無法得出正確的結果
uj5u.com熱心網友回復:
你可以把在mybatis里執行的代碼通過debug模式發出來,對比下你自己在sql執行器里執行的代碼做比較就知道了.uj5u.com熱心網友回復:
所以啊,還是懷疑是代碼邏輯的問題,要不把代碼貼出來看看?uj5u.com熱心網友回復:
1. 可以使用某些工具將你執行的SQL陳述句列印出來,如果你使用的是idea的話,并且有列印日志的話,可以使用Mybatis Log Plugin。2. 如果沒有的話,就只能列印日志,
3. 在Mybatis原始碼中查看你執行的SQL陳述句是個啥
uj5u.com熱心網友回復:
謝謝各位的意見, 抱歉,是我沒有將狀況描述清楚.以下是具體情況:
具體情況
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/49342.html
標籤:Web 開發
上一篇:VSCode 配置C++開發環境
下一篇:求教,快哭了
