MyBatis-plus數(shù)據(jù)庫字段排序不準確的解決
MyBatis-plus數(shù)據(jù)庫字段排序不準確
今天用mybatis-plus進行開發(fā)的時候遇到一個問題,就是用mysql自帶的排序進行數(shù)據(jù)排序的時候,發(fā)現(xiàn)排序的數(shù)據(jù)不準確。
例如:12還沒有8,4,2大,這就很郁悶了

后來在網(wǎng)上查了一下,原來是自己給自己挖的坑,數(shù)據(jù)庫排序字段用的是varcher類型,而排序函數(shù)針對的是number類型。

解決方案
對于mysql和oracle都實用
- order by 字段+0
- order by 字段*1


因為用的是mybatis-plus,不想寫sql怎么辦呢?那就用自帶的排序函數(shù)嘍。排序字段直接"+1"就Ok了
//倒敘
queryWrapper.orderByDesc("visit_num+1");
Mybatis-plus遇到的坑
1. 數(shù)據(jù)庫映射枚舉
不能是tinyint(1),tinyint(1)默認是boolean類型
2. 自增主鍵
數(shù)據(jù)庫設(shè)置了自增主鍵后,po類需要增加@TableId(type = IdType.AUTO),或者不要id字段才能生效。

否則會自動分配id,如下圖:

3. mybatis嵌套查詢
子查詢中需要查出唯一標識

4. 用updateWrapper的update做更新操作
更新時間沒有更新問題
數(shù)據(jù)庫updateTime設(shè)置了 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,仍然不會自動更新時間,需要手動設(shè)置當前時間,或者用updateById方法
5. 使用lambaQuery時
參數(shù)為空會帶入到SQL中(branch_code = null),需要手動過濾,或者在eq中增加條件

6. Integer判斷為空

7. 基礎(chǔ)類型的判斷
customerIssueFlag定義的是String類型,值是Y or N


8. 事務


9. mybatis 配置了多個數(shù)據(jù)庫
除了主數(shù)據(jù)源對應的mapper.java,都不能加 @Mapper 注解,否則會報找不到
由于使用了mybatis-plus的包,默認自動全包掃描@Mapper注解。mybatis掃描生成的Mapper比其他自定義配置的bean生成對應的Mapper對象塊,而自定義的mybatis@MapperScan后掃描,Dao Bean已經(jīng)生成了,無法再指定數(shù)據(jù)源進行注入了。
所以如果在 @Configrution注解類中指定了掃描類,就不用再加 @Mapper注解了
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloudStream原理和深入使用小結(jié)
Spring?Cloud?Stream是一個用于構(gòu)建與共享消息傳遞系統(tǒng)連接的高度可擴展的事件驅(qū)動型微服務的框架,本文給大家介紹SpringCloudStream原理和深入使用,感興趣的朋友跟隨小編一起看看吧2024-06-06
在Eclipse中部署Spring Boot/Spring Cloud應用到阿里云
這篇文章主要介紹了在Eclipse中部署Spring Boot/Spring Cloud應用到阿里云,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
Spring BeanFactory和FactoryBean區(qū)別解析
這篇文章主要介紹了Spring BeanFactory和FactoryBean區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
解析Spring Data JPA的Audit功能之審計數(shù)據(jù)庫變更
Spring Data JPA 提供了Audit審計功能,用來記錄創(chuàng)建時間、創(chuàng)建人、修改時間、修改人等,下面來詳細講解下審計數(shù)據(jù)庫變更2021-06-06

