tkMyBatis配置新增返回主键

博客提及两个参数都要进行配置,但未明确参数具体信息。

在这里插入图片描述
这两个参数都要配

在MyBatis XML中新增数据时返回自增主键有以下两种常见的实现方法: ### 方式一:使用`useGeneratedKeys`属性 在`insert`语句节点中设置`useGeneratedKeys`、`keyColumn`和`keyProperty`属性。`useGeneratedKeys`设置为`true`表示使用数据库的自增主键,`keyColumn`指定表中的主键列名,`keyProperty`指定实体类中对应的主键属性名。示例代码如下: ```xml <insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.example.red_cloud_delivery.entity.Dish"> <!-- 具体的插入SQL语句 --> INSERT INTO your_table_name (column1, column2, ...) VALUES (#{property1}, #{property2}, ...) </insert> ``` 在Java代码中使用时: ```java Dish dish = new Dish(); // 设置dish的属性值 dishService.insertOne(dish); Long id = dish.getId(); ``` 这种方式利用了数据库的自增主键功能,在插入数据后,MyBatis会自动将生成的主键值赋值给实体类的对应属性,通过实体类对象即可获取该主键值 [^5]。 ### 方式二:使用`<selectKey>`标签 `<selectKey>`标签可以在插入操作前后执行一条SQL语句来获取主键值。示例代码如下: ```xml <insert id="insertUser" parameterType="com.example.entity.User"> INSERT INTO users (username, password) VALUES (#{username}, #{password}) <selectKey keyProperty="id" resultType="int" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> </insert> ``` 在上述代码中,`keyProperty`指定实体类中对应的主键属性名,`resultType`指定返回主键值的数据类型,`order`属性设置为`AFTER`表示在插入操作之后执行`selectKey`中的SQL语句。`SELECT LAST_INSERT_ID()`是MySQL中用于获取最后插入记录的自增主键值的函数。在Java代码中同样可以通过实体类对象获取主键值: ```java User user = new User(); // 设置user的属性值 userMapper.insertUser(user); int id = user.getId(); ``` 使用`<selectKey>`标签可以更灵活地控制获取主键值的方式,并且可以在不同的数据库中使用相应的获取主键的SQL语句 [^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘彦青-Yannis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值