mybatis 新增返回主键值
时间: 2023-07-05 18:28:29 浏览: 55
在 MyBatis 中,可以通过 `useGeneratedKeys` 属性来指定是否使用自动生成的主键值。同时,需要在 SQL 语句中指定主键列,如下所示:
```xml
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into user (username, password) values (#{username}, #{password})
</insert>
```
其中,`useGeneratedKeys="true"` 表示开启使用自动生成的主键值,`keyProperty="id"` 表示将自动生成的主键值设置到 `User` 对象的 `id` 属性中。
注意,不同的数据库可能会有不同的实现方式,需要根据具体情况进行调整。
相关问题
mybatis 新增返回对象
MyBatis 在执行插入操作时,可以通过 `insert()` 方法返回插入操作所影响的行数或插入的主键值。如果需要返回完整的插入对象,则可以在插入语句中添加 `useGeneratedKeys="true"` 属性,然后在映射文件中通过 `selectKey` 元素配置获取插入对象的语句。
以下是一个示例,假设我们有一个 `User` 对象需要进行插入操作:
```xml
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (username, password, email)
VALUES (#{username}, #{password}, #{email})
</insert>
<select id="selectUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
```
在上面的示例中,`insertUser` 插入语句中的 `useGeneratedKeys="true"` 属性表示使用数据库生成的主键值,`keyProperty="id"` 表示将生成的主键值设置到 `User` 对象的 `id` 属性中。然后在映射文件中,通过 `selectUserById` 查询语句获取插入的完整对象。
具体使用方法可以参考 MyBatis 官方文档:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#insert_update_and_delete_mappings
mybatis新增完怎么返回主键
在MyBatis中,当我们向数据库插入一条记录时,可以通过以下步骤来获取返回的主键:
1. 首先,需要在Mapper.xml文件中设置主键生成策略。可以使用数据库自动生成主键的方式,如MySQL的自增长主键,或者使用插入语句返回主键的方式。
2. 在Mapper.xml文件中,使用`<insert>`标签定义插入语句,并设置对应的主键生成策略。例如,可以在`<insert>`标签内添加`useGeneratedKeys="true"`来开启使用数据库自动生成主键的功能,或者添加`keyColumn`和`keyProperty`属性来指定返回主键的列名和实体类中表示主键的属性名。
3. 在Java代码中,调用MyBatis的`insert`方法来执行插入操作。可以使用`org.apache.ibatis.session.SqlSession`接口提供的`insert`方法,传入对应的Mapper方法和插入的实体对象。
4. 在插入完毕后,可以通过实体对象中的主键属性来获取返回的主键值。如果`keyProperty`属性正确设置,MyBatis会自动将返回的主键值设置到实体对象的对应属性中。
例如,在Mapper.xml中可以有如下定义:
```xml
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
INSERT INTO user (username, password) VALUES (#{username}, #{password})
</insert>
```
在Java代码中可以这样使用:
```java
User user = new User();
user.setUsername("test");
user.setPassword("123456");
sqlSession.insert("UserMapper.insertUser", user);
System.out.println("新增的主键值为:" + user.getId());
```
以上是一种常见的获取返回主键的方法,具体可根据实际情况来选择合适的方式。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)