首页 > 数据库 >数据库表对应的实体类上的相关注解

数据库表对应的实体类上的相关注解

时间:2024-08-14 16:53:52浏览次数:16  
标签:实体类 数据库 equals import 注解 Lombok 构造函数

一、解释

这些注解是Java中常用的Lombok库和MyBatis-Plus框架提供的,用于简化实体类的开发和ORM映射。下面是对每个注解的解释:

1. **@Data**:
   - 这是Lombok库的一个综合注解,包含了以下几个注解的功能:
     - `@Getter`: 为所有字段生成getter方法。
     - `@Setter`: 为所有字段生成setter方法。
     - `@ToString`: 为类生成`toString()`方法。
     - `@EqualsAndHashCode`: 为类生成`equals()`和`hashCode()`方法。
     - `@RequiredArgsConstructor`: 为类生成包含`final`字段的构造函数。
   - 使用这个注解可以大大减少样板代码,自动生成常用的方法,保持代码的简洁。

2. **@EqualsAndHashCode(callSuper = false)**:
   - 这个注解也是Lombok库提供的,用于生成`equals()`和`hashCode()`方法。
   - `callSuper = false`表示不调用父类的`equals()`和`hashCode()`方法,通常用于没有继承关系或者不希望将父类的字段考虑在内的情况。
   - 如果类是从另一个类继承的,但你希望只比较当前类的字段,而不包括父类的字段,可以设置`callSuper = false`。

3. **@AllArgsConstructor**:
   - 这个注解由Lombok提供,用于生成一个包含所有字段的构造函数(即使是`final`字段)。
   - 当你希望在创建对象时能够直接设置所有字段的值,可以使用这个注解。

4. **@NoArgsConstructor**:
   - 也是Lombok提供的,用于生成一个无参构造函数。
   - 如果类中有`final`字段,Lombok会生成一个会将这些`final`字段初始化为默认值的构造函数。
   - 使用场景包括ORM框架(如MyBatis-Plus)在实例化对象时通常需要无参构造函数。

5. **@TableName("sl_carriage")**:
   - 这是MyBatis-Plus框架中的注解,用于指定实体类对应的数据库表名。
   - `"sl_carriage"`表示这个实体类映射到数据库中的`sl_carriage`表。
   - 通过这个注解,MyBatis-Plus可以将实体类与数据库表正确映射,以便执行CRUD操作。

### 为什么实体类上要用这些注解:

- **减少样板代码**:通过Lombok注解(如`@Data`、`@AllArgsConstructor`等),开发者可以避免手动编写getter、setter、构造函数、`equals()`、`hashCode()`等方法,提升代码可读性和开发效率。
- **确保ORM映射**:通过MyBatis-Plus的`@TableName`注解,可以准确地将Java实体类映射到数据库表,确保数据库操作的正确性。
- **便于框架工作**:如无参构造函数对于ORM框架至关重要,`@NoArgsConstructor`确保这些框架能正常工作。

这些注解的组合使用,使得实体类更加简洁且功能完备,简化了开发过程并减少了潜在的错误。

二、举例

package com.cyt.carriage.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.cyt.common.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * cyt 20240812
 * 运费模板表
 */
@Data // 提供get,set,tostring,equals,hashcode等方法
@EqualsAndHashCode(callSuper = false) // 提供equals,hashcode方法,不考虑父类继承的字段
@AllArgsConstructor // 提供包含所有字段的有参构造
@NoArgsConstructor // 提供无参构造
@TableName("sl_carriage") // 用于指定实体类对应的数据库表名
public class CarriageEntity extends BaseEntity {
   。。。。。。
}

标签:实体类,数据库,equals,import,注解,Lombok,构造函数
From: https://blog.csdn.net/qq_46637011/article/details/141141783

相关文章

  • SSM基于的社区疫情防控管理信息系统的设计与实现khjit 本系统(程序+源码+数据库+调试部
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:居民,核酸检测,检测预约,检测记录,健康上报,出入信息,物品申请,物品派送开题报告内容一、课题背景与意义随着全球新冠疫情的持续蔓延,社区疫情防控成为......
  • SQLServer 错误: 8646,在数据库 'msdb',表 1077578877 的索引 ID 1 中找不到索引条目
    一台非生产服务器,磁盘被打满了,刚开始以为只是正常的磁盘使用增长满了,就清理了一部分空间出来,没过一会,就又满了,排查到sqlserver的错误日志文件一直在增 同时查看sqlserver错误日志,大量报错日志:[298]SQLServer错误:8646,在数据库'msdb',表1077578877的索引ID1中找不到索......
  • ollama的set parameter的参数的注解
    >>>/setparameterAvailableParameters:/setparameterseed<int>Randomnumberseed/setparameternum_predict<int>Maxnumberoftokenstopredict/setparametertop_k<int>Pickfromtopk......
  • Thinkphp6多数据库实例跨库操作
    ThinkPHP6.env文件database.php数据库配置配置.env文件#默认数据库配置DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=default_dbDB_USERNAME=rootDB_PASSWORD=#第二个数据库配置DB2_CONNECTION=mysqlDB2_HOST=127.0.0.1DB2_PORT=3306DB2_DAT......
  • 在Centos系统源码安装postgreSQL数据库及postGIS扩展
    本次安装的各版本如下postgresql-13.5.targeos-3.10.2gdal-3.4.1proj-8.2.1postgis-3.2.1一、安装postgreSQL1.1安装包下载地址选postgresql-13.5.tar.gz。使用工具将下载好的包传到服务器。解压,进入解压目录[root@localhostlocal]#yuminstallgccreadline-develzlib-d......
  • 数据库服务器运维最佳实践
    数据库服务器运维是确保数据库系统高效、稳定和安全运行的关键环节。随着信息技术的不断发展,数据库系统的规模和复杂性不断增加,对运维工作的要求也越来越高。以下将从硬件选择、操作系统和文件系统优化、数据库版本选择、参数优化、数据备份与恢复、性能监控与调优、安全管......
  • Python轻量级 NoSQL 数据库之tinydb使用详解
    概要在现代应用开发中,使用数据库来存储和管理数据是非常常见的需求。对于简单的数据存储需求,关系型数据库可能显得过于复杂。TinyDB是一个纯Python实现的轻量级NoSQL数据库,专为嵌入式场景设计,适用于小型项目、原型开发和教学等场景。本文将详细介绍TinyDB库,包括其安......
  • 宝塔硬盘满了,宝塔不能登录,数据库宕机解决办法
    1.命令查看硬盘是否满了:df如果满了,清楚日志,清理磁盘打开SSH软件清理二进制日志:rm-f/www/server/data/ib_*rm-f/www/server/data/mysql-bin*启动数据库servicemysqldstart2.宝塔就可以连接上了,查看一下占满的原因:3)数据库日志占满,关闭日志就行了,需要打开的话重新打开4)......
  • 宝塔如何数据库的备份与导入
    点击备份按钮(无备份),(如图)选择备份,即可备份当前数据库文件。点击导入按钮,(如图)可以选择本地上传,或选择已备份的文件还原。默认数据库路径为/www/backup/database。以上备份导入均是使用mysqldump。导入的sql文件格式必须符合标准,若你使用phpmyadmin导出的sql文件,可能会缺少版......
  • 2024年8月中国数据库排行榜:OceanBase攀升再夺冠,达梦跃入三甲关
    在这个炽热的季节,随着巴黎奥运会的盛大开幕,全球将目光聚集在了体育的无限魅力和竞技的巅峰对决上。如同奥运赛场上的激烈角逐,中国数据库界也上演着一场技术与创新的较量,各个数据库产品正在中国乃至全球舞台上展示着它们的实力和潜力。现在让我们共同盘点本月墨天轮社区中国数据库......