我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java如何获取@TableField,@TableName注解的值

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java如何获取@TableField,@TableName注解的值

如何获取@TableField,@TableName注解的值

总觉得写博客要形成自己的风格才行,不能像记流水账一样记录,比如文章有开头,过程,结尾,总结。虽说文章的好坏,跟排版无关,但是至少看得人看的舒服。所以说,要有自己的风格、比如,文章是为了记录什么,解决什么,学到了什么,总结之后给别人帮助。这才是挺有意思的一件事。

不多说,上菜。

有这么一个需求,程序中修改资料,或者代码里面需要修改到表的时候,不想通过多张日志表去记录说修改了什么,那么我定义一张表,存储表名,表字段,再存储修改的值这些。虽然说后期如果有需求要还原数据比较麻烦,但是统一处理了数据,也不会需要定义那么多张表。

操作方式

定义一个实体类

@TableName("uc_cust_lock")
public class CustLock {
        
    @TableId
    @TableField("cust_lock_id")
    private String custLockId;
 
        
    @TableField("broker_user_id")
    private String brokerUserId;
 
    
        
    @TableField("org_id")
    private String orgId;
    // get,set...省略
}

获取类的信息

// 引入的Jar包
// import com.baomidou.mybatisplus.annotation.TableField;
// import com.baomidou.mybatisplus.annotation.TableId;
// import com.baomidou.mybatisplus.annotation.TableName;
// import java.lang.reflect.Field;
 
private static void getProxyPojoValue(Object object, Set<String> key1){
        String id = null;
        // 返回参数
        HashMap<String,Object> hashMap = new HashMap<>(16);
        for (String s : key1) {
            Field[] fields = object.getClass().getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true);
 
                // 获取表名
                TableName table = object.getClass().getAnnotation(TableName.class);
                if (table != null) {
                    String tableName = table.value();
                    hashMap.putIfAbsent("tableName", tableName);
                }
                // 获取主键id
                if (id == null) {
                    boolean isIdField = field.isAnnotationPresent(TableId.class);
                    if (isIdField) {
                        TableField tableField = field.getAnnotation(TableField.class);
                        if (s.toLowerCase().equals(field.getName().toLowerCase())) {
                            String tableId = tableField.value();
                            hashMap.put(s,tableId);
                            id = tableId;
                        }
                    }
                }
 
                // 获取字段的值
                boolean isTableField = field.isAnnotationPresent(TableField.class);
                if (isTableField) {
                    TableField tableField = field.getAnnotation(TableField.class);
                    if (s.toLowerCase().equals(field.getName().toLowerCase())) {
                        String fieldValue = tableField.value();
                        hashMap.put(s,fieldValue);
                    }
                }
            }
        }
        System.out.println(hashMap);
    }

Main方法执行

public static void main(String[] args) throws IllegalAccessException {
        Set<String> key1= new HashSet<>();
        // 定义修改的值(后期可做成动态)
        key1.add("brokerUserId");
        // 定义主键id
        key1.add("custlockid");
        getProxyPojoValue(new CustLock(),key1);
}
 
// 结果:
// {custlockid=cust_lock_id, brokerUserId=broker_user_id, tableName=uc_cust_lock}

小结一下

通过getDeclaredFields,getAnnotation这两个主要关键类去获取对应的信息。

@TableName和@TableId爆红

加入pom依赖

  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java如何获取@TableField,@TableName注解的值

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java怎么获取@TableField,@TableName注解的值

今天小编给大家分享一下Java怎么获取@TableField,@TableName注解的值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来
2023-06-26

java如何获取注解的值

在Java中,可以通过反射来获取注解的值。具体步骤如下:首先,需要定义一个带有注解的类或方法。@MyAnnotation(name = "example", value = "Hello World")public class MyCla
2023-10-26

java如何获取map的值

在Java中,可以使用`get()`方法从`Map`对象中获取键对应的值。具体语法如下:```javaMap map = new HashMap();// 添加键值对map.put(key1, value1);map.put(key2, v
2023-09-11

java如何获取方法上的注解

要获取方法上的注解,可以使用Java的反射机制。以下是一种常见的方法:1. 首先,使用`Class`类的`getMethod`或`getDeclaredMethod`方法获取要获取注解的方法。`getMethod`方法可以获取公共方法,而`
2023-09-20

java如何获取枚举的值

在Java中,可以使用values()方法来获取枚举类型的所有值。该方法返回一个包含枚举常量的数组。下面是一个示例:enum Color {RED,BLUE,GREEN}public class Main {public static
2023-10-24

JAVA中redis如何获取值

本篇教程详细讲解了如何在Java中使用Redis获取值。使用Jedis客户端库,只需连接到服务器、验证(如果需要),即可使用特定方法获取字符串、列表、散列、集合和有序集合的值。示例展示了如何获取字符串值。另有注意事项,如键不存在时的行为和值的类型存储在键中。此外,Redis提供其他方法用于查找和筛选值。
JAVA中redis如何获取值
2024-04-02

JAVA中如何获取redis值

如何获取Java中的Redis值?通过Java客户端库(如Jedis)连接到Redis服务器。选择要操作的数据库。使用get()、hget()或lrange()方法获取值。根据数据类型解析获取的值。关闭与Redis服务器的连接。
JAVA中如何获取redis值
2024-04-02

Java注解怎么获取请求参数值

在Java中,可以使用反射来获取方法中的请求参数值。以下是一个示例代码:```javaimport java.lang.annotation.ElementType;import java.lang.annotation.Retention
2023-09-27

java中如何获取map的key值

在Java中,可以使用`Map`的`keySet()`方法获取`Map`的所有key值。`keySet()`方法返回一个`Set`集合,该集合包含`Map`中的所有key值。下面是一个示例代码:```javaimport java.util
2023-08-31

java中如何获取url中的值

在Java中,可以使用java.net.URL类来获取URL中的值。以下是一个简单的示例代码:import java.net.URL;import java.net.MalformedURLException;public class
java中如何获取url中的值
2024-04-09

java如何获取list所有值

在Java中,可以使用for循环遍历List来获取所有值。具体步骤如下:1. 定义一个List对象,例如:```javaList list = new ArrayList();```2. 向List中添加元素,例如:```javalist.
2023-09-20

java如何获取list中最大的值

可以使用Collections类的max()方法来获取List中的最大值。以下是一个示例代码:```javaimport java.util.ArrayList;import java.util.Collections;import jav
2023-08-15

java如何获取json中的某个值

在Java中,可以使用JSON库来解析JSON数据并获取其中的某个值。常用的JSON库有Jackson、Gson和JSON-java等。以下是使用Jackson库获取JSON中的某个值的示例代码:```javaimport com.fast
2023-10-10

java如何获取object中某key的值

在Java中,可以通过以下方式获取object中某个key的值:使用JSONObject类:首先将object转换为JSONObject对象,然后使用get方法获取指定key的值。import org.json.JSONObject;JS
2023-10-24

java如何获取url中的参数值

在Java中获取URL中的参数值可以使用`java.net.URLDecoder`类的`decode`方法来解码URL中的参数。具体步骤如下:1. 使用`java.net.URL`类的构造函数创建一个URL对象,传入URL字符串作为参数。2
2023-08-08

nacos中使用@Value注解获取不到值如何解决

这篇文章主要介绍了nacos中使用@Value注解获取不到值如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇nacos中使用@Value注解获取不到值如何解决文章都会有所收获,下面我们一起来看看吧。可能导
2023-07-05

java如何获取内存地址中的值

在Java中,可以使用以下方法获取内存地址中的值:1. 对于基本数据类型,可以直接使用变量名获取其值。2. 对于引用类型,可以使用对象的方法获取其值。例如,String类的实例可以使用`toString()`方法来获取字符串的值。3. 对于
2023-09-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录