在使用MyBatis-Plus實現基本的CRUD時,我們並沒有指定要操作的表,只是在Mapper接口繼承BaseMapper時,設置了泛型User,而操作的表爲user表。
由此得出結論,MyBatis-Plus在確定操作的表時,由BaseMapper的泛型決定,即實體類型決定,且默認操作的表名和實體類型的類名一致。
若實體類類型的類名和要操作的表的表名不一致,會出現什麼問題?
我們將表user更名爲t_user,測試查詢功能程序拋出異常,Table ‘mybatis_plus.user’ doesn’t exist,因爲現在的表名爲t_user,而默認操作的表名和實體類型的類名一致,即user表。
這時@TableName就登場了。
1、在實體類類型上添加
@TableName(“t_user”),標識實體類對應的表,即可成功執行SQL語句。
其實@TableName的作用就是在類名和數據庫中的表名不一致時確定某個實體類對應數據庫中哪個表。
2、但是在開發的過程中,我們經常遇到以上的問題,即實體類所對應的表都有固定的前綴,例如t_或tbl_。此時,可以使用MyBatis-Plus提供的全局配置(在yml文件或者properties文件),爲實體類所對應的表名設置默認的前綴,那麼就不需要在每個實體類上通過@TableName標識實體類對應的表。
上面是在application.yml中配置mybtisPlus全局配置。
參考:https://blog.csdn.net/qq_47905231/article/details/125056673