注解 生成有多个字段的中间表 怎么配置

注解 生成有多个字段的中间表 怎么配置,第1张

订单与货物时属于多对多关系,创建数据表的时候是要用第三张表来表示,第三表应该有本表的id,order表的id (order_id作为外键) 和goods表的id(id做为外键),这3个id;或者可以把order表的id与goods表的id做联合主键。而上面中间表中你有totalPrice,这字段数属于order表的,你写在第三张表中就会违反数据库第二范式。

使用 @Getter 和/或 @Setter 注释任何字段,以使 lombok 自动生成默认的 getter / setter 。

默认的 getter 只是返回该字段,如果该字段被称为 foo ,则名为 getFoo (如果该字段的类型为 boolean ,则为 isFoo )。

默认生成的 getter / setter 方法是公共的,除非你明确指定一个 AccessLevel 。合法访问级别为 PUBLIC,PROTECTED,PACKAGE和PRIVATE 。

你还可以在类上添加 @Getter 和/或 @Setter 注释。在这种情况下,就好像你使用该注释来注释该类中的所有非静态字段一样。

你始终可以使用特殊的 AccessLevelNONE 访问级别来手动禁用任何字段的 getter / setter 生成。这使你可以覆盖类上的 @Getter,@Setter或@Data 注释的行为。

With Lombok:

Native Java:

任何类定义都可以使用 @ToString 注释,以使 lombok 生成 toString() 方法的实现。

默认情况下,将打印所有非静态字段。如果要跳过某些字段,可以使用 @ ToStringExclude 注释这些字段。或者,可以通过使用 @ToString(onlyExplicitlyIncluded = true) ,然后使用 @ToStringInclude 标记要包含的每个字段,来确切指定希望使用的字段。

通过将 callSuper 设置为 true ,可以将 toString 的超类实现的输出包含到输出中。请注意, javalangObject中toString() 的默认实现几乎毫无意义。

With Lombok:

Native Java:

任何类定义都可以使用 @EqualsAndHashCode 进行注释,以使 lombok 生成 equals(Object other) 和 hashCode() 方法的实现。默认情况下,它将使用所有非静态,非瞬态字段,但是您可以通过使用 @EqualsAndHashCodeInclude 标记类型成员来修改使用哪些字段(甚至指定要使用各种方法的输出)。 @EqualsAndHashCodeExclude 。或者,可以通过使用@ EqualsAndHashCodeInclude 标记并使用 @EqualsAndHashCode(onlyExplicitlyIncluded = true) 来精确指定要使用的字段或方法。

如果将 @EqualsAndHashCode 应用于扩展另一个类的类,则此功能会有些棘手。通常,为此类自动生成 equals 和 hashCode 方法是一个坏主意,因为超类还定义了字段,该字段也需要 equals / hashCode 代码,但不会生成此代码。通过将 callSuper 设置为 true ,可以在生成的方法中包括超类的 equals 和 hashCode 方法。

搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典pdf

With Lombok:

Native Java:

@NoArgsConstructor 将生成没有参数的构造函数。如果字段由final修饰,则将导致编译器错误,除非使用 @NoArgsConstructor(force = true) ,否则所有final字段都将初始化为 0 / false / null 。对于具有约束的字段(例如 @NonNull 字段),不会生成任何检查。

@AllArgsConstructor 为类中的每个字段生成一个带有1个参数的构造函数。标有 @NonNull 的字段将对这些参数进行空检查。

搜索Java知音公众号,回复“后端面试”,送你一份Java面试题宝典pdf

With Lombok:

Native Java:

@Data 是一个方便的快捷方式批注,它将 @ToString , @EqualsAndHashCode , @ Getter / @Setter 和 @RequiredArgsConstructor 的功能捆绑在一起:换句话说, @Data 生成通常与简单 POJO 关联的所有样板(普通的旧 Java 对象)和 bean :所有字段的 getter ,所有 非final 字段的 setter ,以及涉及类字段的适当的 toString , equals 和 hashCode 实现,以及初始化所有 final 字段以及所有 非final 字段的构造函数没有使用 @NonNull 标记的初始化程序,以确保该字段永远不会为 null 。

With Lombok:

Native Java:

@Value注解和 @Data 类似,区别在于它会把所有成员变量默认定义为 private final 修饰,并且不会生成 set 方法。

构建者模式

只能标注到类上,将生成类的一个当前流程的一种链式构造工厂,如下:

可配合 @Singular 注解使用, @Singular 注解使用在jdk内部集合类型的属性, Map 类型的属性以及 Guava 的 comgooglecommoncollect 的属性上。例如 未标注 @Singular 的属性,一般 setter 时,会直接覆盖原来的引用,标注了 @Singular 的属性,集合属性支持添加 *** 作,会在属性原来的基础上增加。

With Lombok:

Native Java:

链式风格

@Accessors 批注用于配置 lombok 如何生成和查找 getter 和 setter 。

默认情况下, lombok 遵循针对 getter 和 setter 的 bean 规范:例如,名为 Pepper 的字段的 getter 是 getPepper 。但是,有些人可能希望打破 bean 规范,以得到更好看的 API 。 @Accessors 允许您执行此 *** 作。

可标注在类或属性上,当然最实用的功能还是标注到类上。

标注到类上, chain 属性设置为 true 时,类的所有属性的 setter 方法返回值将为 this ,用来支持 setter 方法的链式写法。如:

fluent 属性设置为 true 时,类的所有 getter , setter 方法将省略 get 和 set 前缀,获取属性值直接使用属性名相同的无参方法,设置属性值使用属性名相同的有参方法,并且返回值为this。如:

标注到属性上,使用 prefix 设置需要省略的属性生成 getter , setter 方法时的前缀,且属性必须为驼峰式命名。

编译之后为

在需要打印日志的类中使用,项目中使用 slf4j 、 log4j 日志框架

该注解快速判断是否为空,为空抛出 javalangNullPointerException 。

注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上。

注解用于确保已分配的资源被释放( IO 的连接关闭)。

plsql 在oracle中创建表时添加注释使用comment字段。例如有以下表:

CREATE TABLE t1(

id  varchar2(32) primary key,

name VARCHAR2(32) ,

age VARCHAR2(32)

)

添加表注释的命令为:

COMMENT ON table t1 IS '个人信息';

添加字段注释命令为:

comment on column t1id  is 'id';

comment on column t1name is '姓名';

comment on column t1age is '年龄';

扩展资料

plsql中查看表注释和字段注释方法介绍

查看当前用户下所有表注释:select from user_tab_comments      

结果: user_tab_comments:table_name,table_type,comments

查看当前用户下某表所有字段注释:select from user_col_comments where TABLE_NAME='某表名称';  

结果:user_col_comments:table_name,column_name,comments

@Entity 表示当前为实体类 @Id 主键 @GeneratedValue(strategy=GenerationTypeUUID) 主键生成策略。 @Column 映射字段的定义,包括映射的数据库表的字段名称。是否允许为空。字段长度等等定义。

对java实体类的众多理解:

A 就是属性类,通常定义在model层里面

B 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。

好处:

1对对象实体的封装,体现OO思想。

2属性可以对字段定义和状态进行判断和过滤

3把相关信息用一个实体类封装后,我们在程序中可以把实体类作为参数传递,更加方便。

C 说白了就是为了让程序员在对数据库 *** 作的时候不用写SQL语句

D 就是一个数据库表生成一个类

这样做对数据库 *** 作起来方便

编写代码较少 提高效率 可以使程序员专注逻辑关系

E 实体类就是把对某一个表的 *** 作全写在一个类中

F 在Java开发中经常要定义一些实体类,这些类的定义的好坏会直接影响,编写代码的质量和难易程度,以下是别人总结的一些经验。

一、实体类的名字尽量和数据库的表的名字对应相同。

二、实体类应该实现javaioSerializable接口。

三、实体类应该有个无参的构造方法。

四、实体类应该有个有参(所有的参数)的构造方法。

五、实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。

六、实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

七、属性一般是private类型,方法位public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

G 实体类中都是实例对象,实例对象在jvm的堆区中开辟了一个该对象引用空间,并且让该引用指向某个实例,类声明只是在jvm的栈去中开辟了一个该对象引用,没有让该引用做任何指向

例如 :

1String str;

2String str = new String ("dgfgg");

1中的只是一个引用,说明str应该指向一个String 类型的实例,但还没对str和堆区的实例做具体的指向也就是说它还没有指向某个实例

而2中的即定义了一个引用(str)又对str做了具体的指向,它指向的内容就是后面new出来的String 实例

实体类中的构造方法+set方法+get方法:

构造函数:初始化成员变量

get,set方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

构造函数:你每次写一个Java文件,实际上都写了一个类(创建一个类,jvm就会自动为这个类开辟一块内存空间)。有了类就需要有类对象,要产生类对象就需要构造函数对这个刚刚申请的内存空间做一点事,赋属性值之类的工作。当然,如果你不写,它就默认有一个Class(){}的构造方法出现,当然它什么活也不干。

你的属性是什么样的?publicprivate?默认?还是protected这四种你找教材务必弄懂分清,很有用。如果是private,这种属性不许别的对象改和读,但有时候需要改/读,怎么办?写一个public void setAbc(xxx){}和一个public xxx getAbc(){}就实现外部读写属性的功能了。

set ,get完全是自我规定的,就是设置初值和获得值的意思.你也可以修改成其他字符.但是用set ,get还是要好些,因为你能通过单词理解你写的代码的意思,方便阅读而已。

以下是mybatis忽略映射字段的方法:

@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。

@TableField(exist = true):表示该属性为数据库表字段。

@TableName:数据库表相关

@TableId:表主键标识

@TableField:表字段标识

@TableLogic:表字段逻辑处理注解(逻辑删除)

扩展资料

mybatis---属性和字段映射:

1、查询时使用别名,别名和属性名保持一致

<select id="getUser" parameterType="int" resultType="comskdmybitsdomainUser">

select id_dif id, name_dif name, age_dif age from users where id=#{id}  

</select>

别名和属性名保持一致。

2、通过resultMap标签映射字段名和属性名的关系

<!-- type:表示实体类的全限定类名  id:通过id其他标签可引用该标签-->

  <resultMap type="comskdmybitsdomainUser" id="userResultMap">

      <!-- id 标签映射主键字段 -->

      <id property="id_dif" column="id"/>

      <!-- result 标签映射其他字段 -->

      <result property="id_dif" column="id"/>

  </resultMap>

以上就是关于注解 生成有多个字段的中间表 怎么配置全部的内容,包括:注解 生成有多个字段的中间表 怎么配置、超级全面的 Lombok 注解介绍,学一波、plsql 建表 如何添加注释等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9289068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存