MP在實體中的常用注解v2

MP默認(rèn)設(shè)置:

????1.MP中insert新增記錄時,我的入?yún)⒉]有寫主鍵id,但是執(zhí)行后查看生成的sql語句是有id的;這個是MP給我們默認(rèn)填充的,默認(rèn)是采用基于雪花算法的自增id;

????2.數(shù)據(jù)庫的列帶“_”下劃線時,實體中會自動映射為駝峰命名規(guī)范;

????3.數(shù)據(jù)表表名和實體中類名對應(yīng)默認(rèn)也是同上的;

? ? 4.@Data默認(rèn)不為static靜態(tài)變量生成getter和setter方法,需要手動寫;

? ? 5.MP的默認(rèn)策略是:實體對象中的實例變量值為null時,在執(zhí)行插入或者修改操作時,數(shù)據(jù)庫中與該實例變量對應(yīng)的列,不會出現(xiàn)在insert和update語句中;


MP修改默認(rèn)設(shè)置:

? ? 1.表名對應(yīng)關(guān)系:(@TableName("對應(yīng)數(shù)據(jù)庫表名")

? ? ? ?——案例1:如果數(shù)據(jù)表表名為t_user,實體類名為user時,因為不符合MP的默認(rèn)對應(yīng)規(guī)則了,所以直接執(zhí)行插入等相關(guān)方法時會報錯;

? ? ? ?——解決辦法:在實體類名上加注解@TableName("t_user"),直接指定對應(yīng)數(shù)據(jù)庫表名即可。

? ? 2.主鍵字段對應(yīng)關(guān)系:(@TableId

? ? ? ? ——案例2:數(shù)據(jù)庫主鍵字段為t_id,實體中對應(yīng)字段為tId時,直接執(zhí)行插入等相關(guān)方法時報錯;

? ? ? ? ——原因:MP有默認(rèn)規(guī)則,會找數(shù)據(jù)庫中列名為id的作為主鍵,如果數(shù)據(jù)庫中主鍵不加id而叫t_id或其它,MP就找不到了,不知道該對應(yīng)實體中哪個字段,給哪個字段使用雪花算法來填充;

? ? ? ? ——解決辦法:在實體中主鍵字段tId上添加注解@TableId,MP則知道此字段對應(yīng)數(shù)據(jù)庫中主鍵t_id字段。
? ? 3.普通字段對應(yīng)關(guān)系:(@TableField("對應(yīng)數(shù)據(jù)庫字段名")

? ? ? ? ——案例3:如果數(shù)據(jù)庫中字段名name和實體中對應(yīng)成員變量名tableName對應(yīng)不上,則執(zhí)行插入等操作時會報錯;

? ? ? ? ——解決方案:在實體字段上添加@TableField("name"),指定和數(shù)據(jù)庫中字段的對應(yīng)關(guān)系。


常用注解使用指南:

? ? 1.@TableId:指定表主鍵字段對應(yīng)的成員變量,并使用默認(rèn)雪花算法;使用場景:當(dāng)主鍵字段不為id時使用;要點:字段和變量名必須對應(yīng)小駝峰;

? ? 2.@TableField(“字段名”):指定成員變量對應(yīng)的表中字段名;使用場景:變量名和表字段名不對應(yīng)時使用;

? ? 3.@TableId和@TableField(“字段名”)不能同時使用在一個變量上,@TableField(“字段名”)寫在主鍵上時查詢正常,但新增等方法會報錯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容