微商货源网站大全诏安县建设局网站
微商货源网站大全,诏安县建设局网站,优秀的软文,网站建设若干意见基于BaseMapper的crud
通用 CRUD 封装 BaseMapper接口#xff0c;Mybatis-Plus 启动时#xff0c;自动解析实体表关系映射转换为 Mybatis 内部对象注入容器#xff0c;内部包含常见的单表操作
insert
插入一条记录T 就是要插入的实体对象默认主键生成策略为雪…基于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;DataTableName(user)// 对应数据库user表publicclassUser{// 主键策略// 1. IdType.AUTO数据库自增需先给数据库表id字段设置自增// 2. IdType.ASSIGN_ID默认雪花算法生成Long型ID// 3. IdType.INPUT手动输入主键值TableId(typeIdType.AUTO)privateLongid;// 用户IDprivateStringusername;// 用户名privateIntegerage;// 年龄privateStringemail;// 邮箱}UserMapper接口继承BaseMapperUser即可使用insert方法importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importorg.apache.ibatis.annotations.Mapper;MapperpublicinterfaceUserMapperextendsBaseMapperUser{// 无需手动编写insert方法BaseMapper已内置}insert(T entity) 方法使用示例示例1基础使用数据库自增主键适用于主键为数据库自增的场景对应TableId(type IdType.AUTO)importorg.springframework.stereotype.Service;importjavax.annotation.Resource;ServicepublicclassUserService{ResourceprivateUserMapperuserMapper;/** * 插入一条用户记录数据库自增主键 */publicvoidinsertUser(){// 1. 创建实体对象无需设置id自增策略下会由数据库自动生成UserusernewUser();user.setUsername(zhangsan);// 设置用户名user.setAge(25);// 设置年龄user.setEmail(zhangsanexample.com);// 设置邮箱// 2. 调用insert方法返回值为「受影响的行数」插入成功返回1失败返回0intaffectedRowsuserMapper.insert(user);// 3. 关键插入后实体对象的id会被**自动回填**System.out.println(插入受影响行数affectedRows);// 输出1System.out.println(插入后生成的主键IDuser.getId());// 输出数据库自增的ID如1、2、3...}}示例2默认雪花算法主键IdType.ASSIGN_ID如果将User实体的主键策略改为默认的雪花算法// 修改User类的主键注解TableId(typeIdType.ASSIGN_ID)privateLongid;调用逻辑不变但主键生成规则不同publicvoidinsertUserWithSnowflakeId(){UserusernewUser();user.setUsername(lisi);user.setAge(30);user.setEmail(lisiexample.com);intaffectedRowsuserMapper.insert(user);System.out.println(插入受影响行数affectedRows);// 输出1// 雪花算法生成的Long型ID如175689876543219876System.out.println(雪花算法生成的主键IDuser.getId());}示例3手动输入主键IdType.INPUT适用于需要自定义主键值的场景// 修改User类的主键注解TableId(typeIdType.INPUT)privateLongid;调用时需手动设置idpublicvoidinsertUserWithCustomId(){UserusernewUser();user.setId(100L);// 手动指定主键IDuser.setUsername(wangwu);user.setAge(28);user.setEmail(wangwuexample.com);intaffectedRowsuserMapper.insert(user);System.out.println(插入受影响行数affectedRows);// 输出1System.out.println(手动设置的主键IDuser.getId());// 输出100}关键注意事项插入时如果实体字段值为nullMyBatis-Plus 会忽略该字段数据库中对应列会按默认值填充如null或数据库设置的默认值雪花算法生成的ID是全局唯一的适合分布式系统无需依赖数据库自增若数据库表字段 和 实体属性名 不一致需用TableField(value 数据库列名)映射。总结insert(T entity)方法返回受影响的行数插入成功返回1失败返回0主键生成策略由实体类TableId的type决定默认是雪花算法IdType.ASSIGN_ID插入完成后实体对象的id字段会被自动回填可直接获取生成的主键值。