news 2026/3/22 6:46:08

mybatis-plus 基于 Mapper接口的 insert

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mybatis-plus 基于 Mapper接口的 insert

基于BaseMapper的crud

  • 通用 CRUD 封装BaseMapper接口,
  • Mybatis-Plus 启动时,自动解析实体表关系映射转换为 Mybatis 内部对象注入容器,内部包含常见的单表操作

insert

"插入一条记录"T就是要插入的实体对象 默认主键生成策略为雪花算法(后面讲解)intinsert(Tentity);
类型参数名描述
Tentity实体对象



insert 举例详解

前置准备

已定义的User实体类(稍补充主键策略说明):

importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;importlombok.Data;@Data@TableName("user")// 对应数据库user表publicclassUser{// 主键策略:// 1. IdType.AUTO:数据库自增(需先给数据库表id字段设置自增)// 2. IdType.ASSIGN_ID(默认):雪花算法生成Long型ID// 3. IdType.INPUT:手动输入主键值@TableId(type=IdType.AUTO)privateLongid;// 用户IDprivateStringusername;// 用户名privateIntegerage;// 年龄privateStringemail;// 邮箱}

UserMapper接口(继承BaseMapper<User>即可使用insert方法):

importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importorg.apache.ibatis.annotations.Mapper;@MapperpublicinterfaceUserMapperextendsBaseMapper<User>{// 无需手动编写insert方法,BaseMapper已内置}

insert(T entity) 方法使用示例

示例1:基础使用(数据库自增主键)

适用于主键为数据库自增的场景(对应@TableId(type = IdType.AUTO)):

importorg.springframework.stereotype.Service;importjavax.annotation.Resource;@ServicepublicclassUserService{@ResourceprivateUserMapperuserMapper;/** * 插入一条用户记录(数据库自增主键) */publicvoidinsertUser(){// 1. 创建实体对象,无需设置id(自增策略下会由数据库自动生成)Useruser=newUser();user.setUsername("zhangsan");// 设置用户名user.setAge(25);// 设置年龄user.setEmail("zhangsan@example.com");// 设置邮箱// 2. 调用insert方法,返回值为「受影响的行数」(插入成功返回1,失败返回0)intaffectedRows=userMapper.insert(user);// 3. 关键:插入后,实体对象的id会被**自动回填**System.out.println("插入受影响行数:"+affectedRows);// 输出:1System.out.println("插入后生成的主键ID:"+user.getId());// 输出:数据库自增的ID(如1、2、3...)}}
示例2:默认雪花算法主键(IdType.ASSIGN_ID)

如果将User实体的主键策略改为默认的雪花算法:

// 修改User类的主键注解@TableId(type=IdType.ASSIGN_ID)privateLongid;

调用逻辑不变,但主键生成规则不同:

publicvoidinsertUserWithSnowflakeId(){Useruser=newUser();user.setUsername("lisi");user.setAge(30);user.setEmail("lisi@example.com");intaffectedRows=userMapper.insert(user);System.out.println("插入受影响行数:"+affectedRows);// 输出:1// 雪花算法生成的Long型ID(如175689876543219876)System.out.println("雪花算法生成的主键ID:"+user.getId());}
示例3:手动输入主键(IdType.INPUT)

适用于需要自定义主键值的场景:

// 修改User类的主键注解@TableId(type=IdType.INPUT)privateLongid;

调用时需手动设置id:

publicvoidinsertUserWithCustomId(){Useruser=newUser();user.setId(100L);// 手动指定主键IDuser.setUsername("wangwu");user.setAge(28);user.setEmail("wangwu@example.com");intaffectedRows=userMapper.insert(user);System.out.println("插入受影响行数:"+affectedRows);// 输出:1System.out.println("手动设置的主键ID:"+user.getId());// 输出:100}

关键注意事项

  1. 插入时,如果实体字段值为null
    MyBatis-Plus 会忽略该字段,
    数据库中对应列,会按默认值填充(如null或数据库设置的默认值);
  2. 雪花算法生成的ID是全局唯一的,适合分布式系统,无需依赖数据库自增;
  3. 若,数据库表字段 和 实体属性名 不一致,需用@TableField(value = "数据库列名")映射。

总结

  1. insert(T entity)方法返回受影响的行数,插入成功返回1,失败返回0;
  2. 主键生成策略由实体类@TableIdtype决定,
    默认是雪花算法(IdType.ASSIGN_ID)
  3. 插入完成后,实体对象的id字段会被自动回填,可直接获取生成的主键值。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 1:05:07

西门子200smart运动控制四轴搬运取料机(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

西门子200smart运动控制四轴搬运取料机(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码该程序为两台smart plc通过通讯控制四轴伺服电机的搬运取料机案例工程案例程序。 商品包含200smar_PLC程序项目电气接线图程序流程说明触…

作者头像 李华
网站建设 2026/3/21 14:20:23

2026大模型平台漏洞全景报告:攻防新格局下的风险纵深与防御体系

2026年&#xff0c;大语言模型&#xff08;LLM&#xff09;技术正从单一文本交互向自主智能体协同、全模态融合、长期记忆落地的新阶段高速演进&#xff0c;攻击面随技术能力同步拓宽&#xff0c;漏洞类型从传统的提示注入、数据泄露&#xff0c;升级为智能体劫持、多模态隐形注…

作者头像 李华
网站建设 2026/3/16 1:47:13

比MySQL快800倍的数据库:ClickHouse的性能秘密

前言 当传统数据库在处理亿级数据查询时陷入性能瓶颈&#xff0c;一家俄罗斯互联网巨头却默默开发出了一款能比Vertica快5倍、比MySQL快800倍的分析型数据库。 “每天处理超过1000亿条记录&#xff0c;支持近400台服务器集群&#xff0c;历史总记录超过13万亿条。”这是ClickHo…

作者头像 李华
网站建设 2026/3/21 9:23:33

收藏级|大模型入门到就业完整转型攻略,小白/程序员必看

本文详细拆解了零基础进入大模型领域的全流程转型路径&#xff0c;清晰梳理四大核心发展方向&#xff08;开发、应用、研究、工程&#xff09;&#xff0c;手把手指导掌握编程与数学基础、吃透Transformer架构与预训练技术&#xff0c;搭配可直接上手的实践项目、开源社区玩法、…

作者头像 李华
网站建设 2026/3/16 1:17:49

这次终于选对了!8个降AI率平台测评:专科生必看的降AI率工具推荐

在当前学术写作日益依赖AI工具的背景下&#xff0c;论文降AIGC率、去除AI痕迹、降低查重率已成为专科生们必须面对的挑战。随着高校对AI生成内容的检测标准不断提高&#xff0c;单纯依靠AI写作已经无法满足论文质量要求。这时候&#xff0c;专业的AI降重工具就显得尤为重要。这…

作者头像 李华