mybatis 新增返回属性字段

mybatis 新增返回属性字段

useGeneratedKeys="true" keyProperty="measurebasisid"

 

### 描述 MyBatis 中插入操作并返回生成的实体对象 在 MyBatis 执行插入操作之后,可以通过特定配置使该框架能够返回新创建的对象实例。这通常涉及到设置 `useGeneratedKeys` 属性以及指定键属性名称。 对于希望获取由数据库自动生成的关键字(比如自动增长 ID),可以在映射文件中的 `<insert>` 标签里加入这些参数: ```xml <insert id="insertUser" parameterType="com.example.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users(name, email) VALUES (#{name}, #{email}) </insert> ``` 上述 XML 片段展示了如何定义一个名为 `insertUser` 的 SQL 插入语句[^1]。这里设置了两个重要选项:`useGeneratedKeys=true` 表明要利用 JDBC 获取自增主键;而 `keyProperty="id"` 则指定了应将此值赋给 Java Bean 或 Map 对象里的哪个字段/属性名。 当调用这个方法时,传入的目标对象会先被用来填充占位符 `${}` 或者 `#{}`, 完成数据写入后再把产生的唯一标识回填到同一对象内相应的位置上去。因此,在成功提交事务以后就可以直接访问更新后的整个 User 实体了。 #### 示例代码展示完整的流程 下面给出一段基于 Spring Boot 和 MyBatis 配合使用的例子来说明这一点: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User createUser(User newUser){ // 调用 Mapper 接口的方法前不需要手动初始化 Id 字段 int affectedRows = userMapper.insertUser(newUser); if(affectedRows != 1){ throw new RuntimeException("Failed to create a single record"); } // 此处可以直接使用已修改的新建用户对象 return newUser; } } ``` 在这个服务层函数中,通过注入的方式获得了对 `UserMapper` 接口的操作权限,并且实现了保存新的用户信息逻辑。值得注意的是,由于启用了 `useGeneratedKeys`, 当执行完 `insertUser()` 方法后,原本为空或默认值的状态下的 `newUser.id` 将会被实际分配好的编号所替代。 最后一步就是确认影响行数是否符合预期——即只有一条记录受到影响,则可以安全地认为新增过程顺利完成并将含有最新ID在内的完整用户详情作为结果反馈出去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值