需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。
方法:在mapper中指定keyProperty属性,示例如下:
parameterType="com.xxx.tradeSet.bean.Trade"
- <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
- insert into user(userName,password,comment)
- values(#{userName},#{password},#{comment})
- </insert>
如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。
User.java
- public class User {
- private int userId;
- private String userName;
- private String password;
- private String comment;
- //setter and getter
- }
UserDao.java
- public interface UserDao {
- public int insertAndGetId(User user);
- }
测试:
- User user = new User();
- user.setUserName("chenzhou");
- user.setPassword("xxxx");
- user.setComment("测试插入数据返回主键功能");
- System.out.println("插入前主键为:"+user.getUserId());
- userDao.insertAndGetId(user);//插入操作
- System.out.println("插入后主键为:"+user.getUserId());
输出:
- 插入前主键为:0
- 插入后主键为:15
相关推荐
总之,当在Oracle数据库中使用MyBatis进行批量插入时,务必注意适应Oracle的特定语法,如使用`INSERT ALL`,避免使用MySQL等其他数据库系统适用的语法,如逗号分隔的`VALUES`列表。同时,确保正确处理主键生成逻辑,...
`<selectKey>`标签用于获取自增主键的值,通常在MySQL中,当`useGeneratedKeys`设为`true`时,可以获取到自增ID。这里设置为`AFTER`,意味着在插入语句执行后获取新生成的ID。 4. **foreach标签的使用**: `...
8. selectKey:主要用于在insert操作中,执行一个数据库操作(如获取序列值或执行一个自定义的数据库函数)并将返回的主键值设置到传入的实体类中。这通常用在需要自动生成主键的数据库系统中,例如Oracle的序列或...
Mybatis Plus提供了丰富的 CRUD 方法,如 insert、insertBatch、updateById、deleteById 等,使得开发者无需手动编写繁琐的 SQL 语句,极大地提高了开发效率。 2. **条件构造器**: 使用 QueryWrapper 或 ...
通过这种方式,开发者可以利用Spring的强大功能管理事务,同时享受MyBatis-Plus带来的便捷操作,如自动填充主键、条件构造器、分页查询等。在实际项目中,还可以根据需求进一步配置MyBatis-Plus的拦截器、插件等高级...
对于返回大量数据的查询,`SQL_BUFFER_RESULT`可以将结果集存储到临时表,以便快速释放表锁并提供长时间的结果: ```sql SELECT SQL_BUFFER_RESULT * FROM TABLE1 WHERE … ``` 10. **分组使用临时表(SQL_BIG_...
Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用...
内置了分页插件,可以方便地实现分页查询,支持多种数据库的分页方式,如 MySQL、Oracle 等,使用 `Page` 对象进行分页参数设置和结果接收。 6. **主键生成策略**: 提供了多种主键生成策略,包括 Identity(自动...