Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38e46e4a]


  先是在日志里出現了

Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@38e46e4a]

  看網上的博客,以為是XML中事務標簽配錯了,檢查了好一陣子,發現並沒有錯。

 

  接下來看日志中的報錯

MySQLIntegrityConstraintViolationException: Column 'id' in field list is ambiguous

  違反唯一建約束???

  然后我去代碼里查看,發現是代碼邏輯寫錯了,

    public ServerResponse<String> checkValid(String str, String type) {
        if (StringUtils.isNotBlank(type)) {
            if (Const.USERNAME.equals(type)) {
                int resultCount = userMapper.checkUsername(str);
                if (resultCount > 0) {
                    return ServerResponse.createByErrorMessage("用戶名已存在");
                }
            }
            if (Const.EMAIL.equals(type)) {
                int resultCount = userMapper.checkEmail(str);
                if (resultCount > 0) {
                    return ServerResponse.createByErrorMessage("Email已存在");
                }
            }
        } else {
            return ServerResponse.createByErrorMessage("參數錯誤");
        }

        return ServerResponse.createBySuccessMessage("校驗成功");
    }
                if (resultCount > 0) { return ServerResponse.createByErrorMessage("用戶名已存在"); }

      本來是從數據找到一條數據,說明數據庫里已經有該用戶,不應該放行,我把條件寫成了等於0,使這條重復的記錄進入數據庫,造成違反唯一鍵


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM