mybatis-plus-ext注解学习

1.@Column注解

该注解可用在类的属性、注解上

属性类型

名称

含义

默认值

String

value

字段名

不填默认使用属性名作为表字段名

MySqlTypeConstant

type

字段类型

MySqlTypeConstant.DEFAULT;不填默认使用属性的数据类型进行转换,转换失败的字段不会添加

int

length

字段长度

默认是255

int

decimalLength

小数点长度

默认是0

boolean

notNull

是否为可以为null,true是可以,false是不可以

默认为true

boolean

isKey

是否是主键

默认false;同@IsKey

boolean

isAutoIncrement

是否自动递增

默认false;同@IsAutoIncrement

String

defaultValue

默认值

默认为null;同@ColumnDefault,可搭配@IsNativeDefValue使用

String

comment

数据表字段备注

默认为空;同@ColumnComment

@Column注解的属性单独使用:

注解

属性类型

名称

含义

默认值

@ColumnComment

String

value

字段备注

默认""

@ColumnDefault

String

value

字段的默认值

默认""

@IsNativeDefValue

boolean

value

开启默认值原生模式

默认为true; 原生模式介绍:默认是false表示非原生,此时value只支持字符串形式,会将value值以字符串的形式设置到字段的默认值,例如value="aa" 即sql为 DEFAULT "aa" ;如果设置true,此时如果默认值为="CURRENT_TIMESTAMP",即sql为 DEFAULT CURRENT_TIMESTAMP;

@ColumnType

String

value

字段的默认值

默认""

@IsAutoIncrement

boolean

value

是否需要设置自增

默认为true

@IsKey

boolean

value

标志该字段为主键

默认为false

@IsNotNull

boolean

value

标志字段不允许为空

默认为false

2.@DsName

该注解可用在类、注解上

属性类型

名称

含义

默认值

String

value

数据源名城

无默认值

3.@EnableTimeSuffix

含义:表明时间后缀

该注解可用在类上

属性类型

名称

含义

默认值

boolean

value

开启时间后缀

默认开启

String

pattern

时间后缀格式

默认 DateTimeFormatConstant.DATE_MONTH

4.@IgnoreTable

含义:忽略建表的注释

该注解可用在类上

无属性

5.@IgnoreUpdate

含义:忽略字段更新

该注解可用在类的属性上

属性类型

名称

含义

默认值

boolean

value

是否忽略对当前字段的更新操作

默认忽略

6.@Index

含义:设置字段索引

该注解可用在类的属性上

属性类型

名称

含义

默认值

String

value

索引的名字

不设置默认为:{actable_idx_当前标记字段名@Column的name}; 如果设置了名字例如union_name就是actable_idx_union_name

String[]

columns

要建立索引的字段名

不设置默认为:当前标记字段名@Column的name;可设置多个建立联合索引{"login_mobile","login_name"}

7.@Table

含义:创建表时的表名

该注解可用在类上

属性类型

名称

含义

默认值

String

value

表名

默认""

boolean

primary

是否主表

默认false

String

dsName

数据源名称

默认""

String

comment

表注解;也可用@TableComment

默认""

MySqlCharsetConstant

charset

表字符集;也可用@TableCharset

默认MySqlCharsetConstant.DEFAULT mysql支持的字符集:DEFAULT, ARMSCII8, ASCII, BIG5, BINARY, CP850, CP852, CP866, CP932, CP1250, CP1251, CP1256, CP1257, DEC8, EUCJPMS, EUCKR, GB2312, GBK, GEOSTD8, GREEK, HEBREW, HP8, KEYBCS2, KOI8R, KOI8U, LATIN1, LATIN2, LATIN5, LATIN7, MACCE, MACROMAN, SJIS, SWE7, TIS620, UCS2, UJIS, UTF8, UTF8MB4, UTF16, UTF32;

MySqlEngineConstant

engine

表引擎,也可用@TableEngine

默认MySqlEngineConstant.DEFAULT mysql支持的引擎: DEFAULT, ARCHIVE, BLACKHOLE, CSV, InnoDB, MEMORY, MRG_MYISAM, MyISAM, PERFORMANCE_SCHEMA;

String[]

excludeFields

需要排除的属性名,排除掉的属性不参与建表

默认 {"serialVersionUID"}

@Table中的属性单独使用:

注解

属性类型

名称

含义

默认值

@TableCharset

MySqlCharsetConstant

value

表字符集

默认MySqlCharsetConstant.DEFAULT

@TableComment

String

value

表注释

默认""

@TableEngine

MySqlEngineConstant

value

表引擎

默认MySqlEngineConstant.DEFAULT

@TablePrimary

boolean

value

多个Entity对应一个表的情况下,需要指定哪个是主要的,true表示主要的,以此为蓝本创建表

默认false

@Unique

设置字段唯一约束

可用于类的属性上

属性类型

名称

含义

默认值

String

value

唯一约束的名字

默认""; 不设置默认为{actable_uni_当前标记字段名@Column的name};如果设置了名字例如union_name,就是actable_uni_union_name

String[]

columns

唯一约束的字段名

默认{};唯一约束的字段名,不设置默认为当前标记字段名@Column的name 可设置多个建立联合唯一{"login_mobile","login_name"}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Mybatis-Plus是一个基于Mybatis的增强工具,它提供了很多方便的注解来进行多表查询。其中常用的注解有: 1. @TableName:用于指定实体类对应的数据库表名。 2. @TableField:用于指定实体类属性对应的数据库字段名。 3. @TableId:用于指定实体类属性对应的数据库主键字段名。 4. @JoinTable:用于指定多表查询中的关联表和关联字段。 5. @Select:用于指定查询语句,可以使用Mybatis的动态SQL语句。 6. @Results:用于指定查询结果集的映射关系。 使用这些注解可以方便地进行多表查询,减少手写SQL的工作量。同时,Mybatis-Plus还提供了很多其他的增强功能,如自动填充、逻辑删除等,可以大大提高开发效率。 ### 回答2: MyBatis-Plus是一个开源的MyBatis框架的增强工具,可以极大地简化开发人员在使用MyBatis框架时的开发难度,其提供的注解和方法大大简化了开发的过程。当我们需要进行多表查询时,MyBatis-Plus也提供了相应的注解来帮助我们快速完成这个任务。 1. @TableJoin注解 @TableJoin注解表明了我们进行多表连接查询,其支持以下的参数: - type:连接类型,有LEFT_JOIN、RIGHT_JOIN、INNER_JOIN、FULL_JOIN。 - entity:需要连接的实体类。 - alias:连接的实体类别名。 2. @PageableDefault注解 @PageableDefault注解可以应用于方法参数级别,指定分页参数的默认值。 3. @Select注解 @Select注解指定一个查询操作的SQL语句,其支持以下的参数: - value: SQL语句。 - countQuery:查询总数的SQL语句 。 4. @SelectProvider注解 @SelectProvider注解指定具体的Provider类,在这个类中我们会实现查询SQL的生成逻辑。 总的来说,MyBatis-Plus提供了多种多表查询的注解来满足我们开发中的需求,这些注解可以极大的减少我们的开发成本,让我们更加专注于业务的实现。同时,MyBatis-Plus也提供了完备的文档,这些文档包含了所有需要用到的注解以及具体的使用方法,让我们更加快捷地进行开发。 ### 回答3: MyBatis-Plus是基于MyBatis的一个增强工具,其提供了很多实用的功能,其中包括多表查询注解。 多表查询注解的使用非常简单,只需要在需要查询的实体类上添加对应的注解即可,例如: ```java @TableName(value = "user") public class User { @TableId(value = "id") private Long id; @TableField(value = "username") private String username; private String password; // getter和setter省略 } @TableName(value = "order") public class Order { @TableId(value = "id") private Long id; private Long userId; private BigDecimal amount; // getter和setter省略 } ``` 假设需要查询用户信息和每个用户的订单总金额,可以通过使用@SqlSelect注解和@Join注解来实现: ```java @SqlSelect("select u.*, sum(o.amount) as total_amount from user u left join order o on u.id = o.user_id group by u.id") public class UserOrderVo { @TableId(value = "id") private Long id; @TableField(value = "username") private String username; private String password; @TableField(value = "total_amount") private BigDecimal totalAmount; // getter和setter省略 } ``` 上述代码中,@SqlSelect注解表示自定义SQL查询语句,@Join注解表示关联查询,其中on属性表示关联条件,type属性表示关联类型,joinColumns和referencedColumns属性表示连接的两个表的关联字段。 除了@SqlSelect和@Join注解MyBatis-Plus还提供了@SqlSeq和@SqlKey注解,用于自定义序列查询和主键生成策略。总之,MyBatis-Plus多表查询注解可以极大地简化复杂的多表查询操作,提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值