欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatisPlus中@TableField注解的基本使用

 更新時間:2023年07月01日 14:50:58   作者:小花皮豬  
這篇文章主要介紹了MyBatisPlus中@TableField注解的基本使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

?前言

在MP中通過@TableField注解可以指定字段的一些屬性

常見解決的問題有2種:

  • 1、對象中的屬性名和字段名不一致的問題(非駝峰)
  • 2、對象中的屬性字段在表中不存在的問題

上述的兩種情況,我們接下來一一舉例說明

我們最長見的,應(yīng)該就是下面這種@TableField的使用方式了,是的,沒錯,就是在實體里面標注這個屬性是數(shù)據(jù)庫表里面的某個字段,采用駝峰命名法的方式

@TableField(“user_name”)
private String userName;

前提準備

在正式操作之前,我們需要提前準備一張表

/*
 Navicat Premium Data Transfer
 Source Server         : 本地庫
 Source Server Type    : MySQL
 Source Server Version : 80017
 Source Host           : localhost:3306
 Source Schema         : mp
 Target Server Type    : MySQL
 Target Server Version : 80017
 File Encoding         : 65001
 Date: 23/08/2022 22:19:37
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用戶名',
  `password` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密碼',
  `name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年齡',
  `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '郵箱',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (1, 'zhangsan', '123456', '張三', 18, 'test1@qq.com');
INSERT INTO `tb_user` VALUES (2, 'lisi', '123456', '李四', 20, 'test2@qq.com');
INSERT INTO `tb_user` VALUES (3, 'wangwu', '123456', '王五', 22, 'test3@qq,com');
INSERT INTO `tb_user` VALUES (4, 'zhaoliu', '123456', '趙六', 24, 'test4@qq.com');
SET FOREIGN_KEY_CHECKS = 1;

使用場景1 字段錯誤

首先我們惡意修改把正確的email 改為mail 讓它故意對不上

此時運行查詢 會報錯 原因就是因為匹配不到email字段

?然后使用@TableField指定這個mail字段就是數(shù)據(jù)庫里面的email字段

//指定數(shù)據(jù)庫字段名稱
@TableField(value = "email")

然后再次運行查詢方法 這次正確了 可見我們的注解起效了

同理 新增也是一樣的 這里我們就直接設(shè)置mail的值 還是可以正常插入對應(yīng)的email的值

使用場景2 不存在字段

這時我在是實體里面加入一個表里面不存在的字段

再次運行報錯 找不到該字段

這時候怎么解決這個問題呢通過@TableField(exist = false) 指名表里沒有這個字段

@TableField(exist = false)

這個時候再次查詢 發(fā)現(xiàn)解決了

使用場景3 不被查詢的字段

如果有的字段數(shù)據(jù)比較隱私 不想被查出來怎么辦呢?

我們可以使用下面的這種方式

// 查詢的時候不返回該字段的值 默認為true(返回)@TableField(select=false)

運行查詢 發(fā)現(xiàn)password的值已經(jīng)被隱藏為null

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論