获取刚刚插入数据的主键 ID
如果我们使用数据库自增主键,可以通过给对应字段加上注解 @TableId(type = IdType.AUTO)
,这样当 insert 后,刚刚插入数据的主键 ID 会回填到 id
字段上。
@Data
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
}
注解实现动态 SQL
不使用 mapper.xml 文件,在 @Mapper
注解的继承自 BaseMapper
的接口里,通过 @Select
等注解也可以实现动态 SQL。
这个属于 MyBatis 提供的功能。相关说明见官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html
一、使用 <script></script>
包裹,mapper.xml 里能使用的 <where>
、<if>
、<foreach>
、<set>
等标签都可以使用,用法看起来与在 xml 里一致;
二、使用 if (条件,为真操作,为假操作)
可以实现类三目运算;
参考:
字段 on update CURRENT_TIMESTAMP 无效
如果 update 操作中 set 了该字段,比如很多时候我们用 updateById 等,不会触发。
可以添加注解 @TableField(update = "NOW()")
。
注:添加了这个注解后,如果 insert 时对应的字段赋值了,会按所赋的值存储。
查询时 distinct
List<User> userList = userService.list(new QueryWrapper<User>()
.select("distinct id").lambda().isNull(User::getName));
文档信息
- 本文作者:王玉镇wangyuzhen
- 本文链接:https://wangyuzhen666.github.io//wiki/java-mybatis-plus/
- 版权声明:Creative Commons 4.0 传播此文章时,您需要遵守知识共享协议。 署名(BY)&非商业性(NC)&相同方式共享(SA)------------------------------- When disseminating this article, you need to adhere to a Creative Commons license. Attribution (BY) & Non-Commercial (NC) & Shareby Manner (SA) .(Creative Commons 4.0)