获取刚刚插入数据的主键 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));
文档信息
- 本文作者:Zhiyi Yin
- 本文链接:https://notomatoplz.com/wiki/java-mybatis-plus/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)