mybatisplus注解
时间: 2023-05-12 13:05:33 浏览: 122
MybatisPlus是一个基于Mybatis的增强工具,它提供了许多注解来简化开发。其中比较常用的注解包括:@TableName、@TableId、@TableField、@Version、@EnumValue等。这些注解可以帮助我们快速地完成实体类与数据库表之间的映射,以及一些常用的CRUD操作。
相关问题
MyBatisPlus 注解
MyBatisPlus 是 MyBatis 的增强工具,在使用 MyBatisPlus 进行开发时,使用注解可以让开发更加便捷。以下是 MyBatisPlus 中常用的注解:
1. @TableName:用于指定实体类对应的数据库表名。
2. @TableId:用于指定主键字段。
3. @TableField:用于指定非主键字段,可以指定字段名、是否为插入操作、是否为更新操作等。
4. @Version:用于乐观锁控制,指定版本号字段。
5. @EnumValue:用于枚举类型字段,指定数据库存储的值。
6. @TableLogic:用于逻辑删除,指定逻辑删除字段。
使用这些注解,可以在实体类中指定与数据库表相关的信息,简化开发流程。
mybatisplus 注解
### MyBatis Plus 注解使用方法及说明
#### @TableName
用于实体类上,指明该实体对应的数据库表名。如果实体类名称与数据库中的表名一致,则无需显式声明此注解。
```java
@TableName("user_info")
public class UserInfo { ... }
```
当两者不匹配时,通过`value`参数指定实际存在的表名[^1]。
#### @TableId
标注在一个成员变量之上,表示这是主键字段;通常会配合自增策略一起设置:
```java
@TableId(type = IdType.AUTO)
private Long id;
```
其中 `type` 属性定义了 ID 生成的方式,比如自动增长 (`AUTO`) 或者雪花算法(`ID_WORKER`) 等等。
#### @TableField
用来描述非主键列的信息,可选属性较多,如是否忽略插入/更新操作、默认值设定以及字段映射关系等:
```java
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableField(exist=false)// 对应的数据库表中不存在这个字段
private Integer age;
```
对于一些特殊场景下的需求,例如只读字段或逻辑删除标记位也可以利用这些选项来处理。
#### 关系型注解——一对多关联 (@Many)
针对复杂业务模型的一对多关系建模,在MyBatis-Plus中有两种主要的方式来完成这种映射:一种是基于XML配置文件的传统做法;另一种则是采用全注解的形式来进行表达。后者更为简洁直观,具体来说就是借助于`@Many`标签及其内部的相关特性实现子查询或是联合查询的结果组装[^3]。
```java
// 子查询形式
@Many(select="com.example.mapper.OrderMapper.selectByUserId")
private List<Order> orders;
// ResultMap 形式
@Results({
@Result(column="id", property="orders",
many=@Many(
select="com.example.mapper.OrderMapper.selectOrdersById"
))
})
```
上述代码片段展示了如何运用不同的模式达成相同的目标—即加载某个用户的订单列表。前者直接给出了获取子项的方法路径,而后者则更倾向于先建立好完整的映射规则再执行具体的检索动作。
阅读全文
相关推荐















