@Column

简化数据库操作,详解MyBatis-Plus实体类上@Column注解的使用 通过在实体类上使用 @Column 注解,我们可以方便地指定数据库表中字段的属性。这样,在使用 MyBatis-Plus 进行数据库操作时,无需手动编写 SQL,就可以轻松完成增删改查等操作。希望本文对你理解 MyBatis-Plus 如何在实体类上使用 @Column 注解有所帮助。 阅读详情

@Column标记表示所持久化属性所映射表中的字段,该注释的属性定义如下:

@Target({METHOD, FIELD}) @Retention(RUNTIME)

public @interface Column {

String name() default "";

boolean unique() default false;

boolean nullable() default true;

boolean insertable() default true;

boolean updatable() default true;

String columnDefinition() default "";

String table() default "";

int length() default 255;

int precision() default 0;

int scale() default 0;

}

在使用此@Column标记时,需要注意以下几个问题:

l         此标记可以标注在getter方法或属性前,例如以下的两种标注方法都是正确的:

标注在属性前:

@Entity

@Table(name = "contact")

public class ContactEO{

@Column(name=" contact_name ")

private String name;

}

标注在getter方法前:

@Entity

@Table(name = "contact")

public class ContactEO{

@Column(name=" contact_name ")

public String getName() {

         return name;

}

}

提示:JPA规范中并没有明确指定那种标注方法,只要两种标注方式任选其一都可以。这根据个人的喜好来选择,笔者习惯使用第二种方法。

l         unique属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint

l         nullable属性表示该字段是否可以为null值,默认为true

l         insertable属性表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。

l         updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertableupdatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。

l         columnDefinition属性表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。

l         table属性表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。有关多个表的映射将在本章的5.6小节中详细讲述。

l         length属性表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。

l         precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale表示小数点所占的位数。

下面举几个小例子:

示例一:指定字段“contact_name”的长度是“512”,并且值不能为null

private String name;

 

@Column(name="contact_name",nullable=false,length=512)

public String getName() {

         return name;

}

创建的SQL语句如下所示。

CREATE TABLE contact (

id integer not null,

contact_name varchar (512) not null,

primary key (id)

)

示例二:指定字段“monthly_income”月收入的类型为double型,精度为12位,小数点位数为2位。

         private BigDecimal monthlyIncome;

 

         @Column(name="monthly_income",precision=12, scale=2)

         public BigDecimal getMonthlyIncome() {

                   return monthlyIncome;

         }

创建的SQL语句如下所示。

CREATE TABLE contact (

id integer not null,

monthly_income double(12,2),

primary key (id)

)

示例三:自定义生成CLOB类型字段的SQL语句。

private String  name;

 

@Column(name=" contact_name ",columnDefinition="clob not null")

public String getName() {

                  return name;

}

生成表的定义SQL语句如下所示。

CREATE TABLE contact (

id integer not null,

contact_name clob (200) not null,

primary key (id)

)

其中,加粗的部分为columnDefinition属性设置的值。若不指定该属性,通常使用默认的类型建表,若此时需要自定义建表的类型时,可在该属性中设置。

提示:通过Entity定义生成表,还是通过表配置Entity,这两种ORM的策略。有关两种方法的映射策略好坏,将在本书的章节中“JPA工具的使用”一章进行详细的比较。

示例四:字段值为只读的,不允许插入和修改。通常用于主键和外键。

         private Integer id;

        

         @Column(name="id",insertable=false,updatable=false)

         public Integer getId() {

                   return id;

         }

Ubuntu20.04下Pycharm的快速安装与配置指南 本文提供了一份详细的Ubuntu 20.04系统下PyCharm社区版的安装与配置指南。文章重点介绍了通过手动下载.tar.gz压缩包进行安装的灵活方法,并涵盖了系统准备、依赖安装、首次运行、创建快捷方式以及解释器配置等关键步骤,帮助Python开发者快速搭建高效、可控的本地开发环境。 阅读详情

相关推荐

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 443

JPA注解

就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系。 该注解的定义如下: @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Column { String name() default ""; boolean unique() def

涂作权的博客 1831

贝塞尔曲线原理--曲线生成--路径规划--matlab代码

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛, 在路径规划中贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制.

bob595078694的博客 1万+

JPA中@Column注解

@Column:标识实体类中属性与数据表中字段的对应关系,可以标注在属性或getter方法前面 package javax.persistence; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy;...

xiaoQL520的博客 2578

@Column注解

[@Column] 用于指定列的相关属性 name - 可选,表示数据库表中列的名称。 默认为属性或字段名称。 nullable - 可选,表示该字段是否允许为 null,默认为 true(null) 若设置为false 则该列不可为null值 unique - 可选,表示该字段是否是唯一标识,默认为 false(不唯一)...

q865165648的博客 1万+

5.2.2 映射方法和属性@Column

@Column标记表示所持久化属性所映射表中的字段,该注释的属性定义如下:@Target({METHOD, FIELD}) @Retention(RUNTIME)public @interface Column {String name() default "";boolean unique() default false;boolean nullable() defaul

9143

@Column注解及属性详解

@Column注解用来标识实体类中属性与数据表中字段的对应关系(1)源码:/* * Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved. * * This program and the accompanying materials are made available under the * terms of t...

别样的风采是我 20万+

@Column注解解析

功能:@Column注解用来标识实体类中属性与数据表中字段的对应关系 语法: @Column(columnDefinition = "bigint(18) comment '公司ID'") private Long ouId; //columnDefinition表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时使用。(也就是说,如果DB中表已经建好了,该属性就没有必要使用了) //comment(注释的意思-我这个文盲硬生生以为是@Column里面带的,类似于name.

qq_35751402的博客 1万+

@Column注解属性详解

@Column属性详解: name 定义了被标注字段在数据库表中所对应字段的名称; unique 表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。 nullable 表示该字段是否可以为null值,默认为true。 insertable 表示在使用“INSERT”脚本插入数据时...

天天开心鸭! 1万+

Hibernate标签之@Column的用法

Hibernate标签之@Column的用法 要养成学习的习惯,定期总结一些工作当中遇到的知识点 这几天要用Hibernate在数据库中见几个表学习到的第一个标签@Column 是属性或方法级别的注解,用于指定持久化属性映射到数据库表的列。如果没有指定列注释,则使用其默认值。 这是官方文档 可以参考下 点到@Coiumn里面可以看到 他的属性有 String name() default “”;...

weixin_38139567的博客 4164

Spring之@Column的注解详解

Spring @Column的注解详解

qq_25073223的博客 3060

spring 中的@column注解讲解及使用

就像@Table注解用来标识实体类与数据表的对应关系类似,@Column注解来标识实体类中属性与数据表中字段的对应关系。 该注解的定义如下: @Target({METHOD, FIELD}) @Retention(RUNTIME)  public @interface Column {  String name() default "";  boolean unique() default false;  boolean ...

weixin_45528849的博客 1万+

java中@Column注解及属性

@Column注解 用来标识实体类中属性与数据表中字段的对应关系。 例如在实体类中的: // Property accessors @GenericGenerator(name = "generator", strategy = "uuid.hex") @Id @GeneratedValue(generator = "generator") @Column(name = "id", uni...

winnieFighting 9894

@Column注解是啥意思

@Column注解 用来标识实体类中属性与数据表中字段的对应关系 @Column属性详解: name 定义了被标注字段在数据库表中所对应字段的名称; unique 表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可以使用该标记,也可以使用@Table标记中的@UniqueConstraint。 nullable 表示该字段是否可以为null值,默认为true。 in...

刘天爱的博客 1万+

@Column 的使用

@Column标记表示所持久化属性所映射表中的字段,该注释的属性定义如下: @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface Column { String name() default ""; boolean unique() default false; boolean nullable(

三布施的专栏 6152

@Column 注解属性详解

@Column 注解在 Java 开发中用于将实体类属性与数据库表列进行映射,适用于 MySQL 数据库。主要属性包括:name 用于指定列名,unique 设置唯一约束,nullable 控制是否允许为 null,insertable 和 updatable 分别控制列是否可插入和更新,columnDefinition 用于自定义列定义,table 指定多表映射中的目标表,length 限制字符串长度,precision 和 scale 用于设置数值精度和小数位数。合理使用提升效率。

1800

JPA @Column 注解

JPA @Column 注解2017-02-13324 Hits0留言@Column 是属性或方法级别的注解,用于指定持久化属性映射到数据库表的列。如果没有指定列注释,则使用其默认值。参数类型描述nameString列的名称,默认为属性的名称(Hibernate 映射列时,若遇到驼峰拼写,会自动添加 _ 连接并将大写字母改成小写)。uniqueboolean列的值是否是唯一的。这是 @Unique...

TuxedoLinux的博客 7264
上一篇: html的一些标签和属性
下一篇: 不同Framework中DAO层的分析
csscnu
博客等级 码龄16年 7粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值