mybatis插入返回影响行数
时间: 2023-05-14 16:05:01 浏览: 734
MyBatis插入操作返回影响的行数,可以通过执行insert()方法后,使用返回的int类型值来获取。例如:
int result = sqlSession.insert("com.example.mapper.UserMapper.insertUser", user);
其中,"com.example.mapper.UserMapper.insertUser"是对应的Mapper.xml文件中的insert语句的id,user是要插入的对象。执行完insert()方法后,result就是影响的行数。
相关问题
mybatis插入数据返回id
在使用 MyBatis 插入数据时,可以通过以下两种方式获取插入数据的 ID:
1. 使用自增主键
如果表中的主键是自增的,可以在插入数据时将 ID 设置为 null,然后在插入后通过返回的影响行数判断是否插入成功,如果成功就可以通过对应的实体类对象获取插入的 ID。
示例代码:
```
<insert id="insertUser" parameterType="User">
INSERT INTO user (name, age, gender) VALUES (#{name}, #{age}, #{gender})
</insert>
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
```
2. 使用 UUID 主键
如果表中的主键是 UUID,可以在插入数据时使用 Java 的 UUID 类生成 UUID,然后将 ID 设置为生成的 UUID,插入数据后即可获取插入的 ID。
示例代码:
```
<insert id="insertUser" parameterType="User">
INSERT INTO user (id, name, age, gender) VALUES (#{id}, #{name}, #{age}, #{gender})
</insert>
```
使用 Java 生成 UUID:
```
String uuid = UUID.randomUUID().toString();
user.setId(uuid);
```
注意:在使用 UUID 主键时,需要将表中主键的类型设置为 VARCHAR。
mybatis 插入数据返回主键的源码解析
MyBatis是一款基于Java的持久层框架,它的设计理念是将数据库操作与具体的SQL语句解耦,通过XML或注解的方式来配置SQL语句,并提供了强大的映射功能,能够将查询结果映射为Java对象。
在MyBatis中,插入数据并返回主键有多种方式,其中比较常用的方式是使用数据库的自增长主键。下面是在MyBatis中插入数据并返回主键的源码解析:
1. 配置SQL语句:在XML文件或注解中配置插入SQL语句,并设置useGeneratedKeys属性为true,以启用主键返回功能。
2. 执行插入操作:通过MyBatis的SqlSession对象调用插入方法,传入SQL语句的参数。
3. SQL语句解析:MyBatis会根据配置的SQL语句解析生成相应的PreparedStatement对象。
4. 执行插入操作并返回主键:MyBatis会通过PreparedStatement的executeUpdate方法执行插入操作,并获得影响的行数。如果配置了自动生成主键的功能,则会通过PreparedStatement的getGeneratedKeys方法获取到插入数据生成的主键。
5. 主键映射:如果返回的主键是自动生成的,则MyBatis会根据配置的主键返回类型自动进行映射,将插入数据生成的主键值设置到对应的Java对象中。
6. 返回结果:最后,MyBatis会将插入操作的结果包装成对应的Java对象,并返回给调用方。
总结来说,MyBatis插入数据并返回主键的过程是通过配置SQL语句和设置相关属性,然后执行插入操作并获取主键值,最后将主键值映射到Java对象中,返回给调用方。这样就可以方便地使用自动生成的主键值进行后续操作。