`

mybaits+mysql 返回insert的主键

 
阅读更多

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

 

方法:在mapper中指定keyProperty属性,示例如下:

parameterType="com.xxx.tradeSet.bean.Trade"

Xml代码  收藏代码
  1. <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">  
  2.     insert into user(userName,password,comment)  
  3.     values(#{userName},#{password},#{comment})  
  4. </insert>  

 如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。

 

User.java

Java代码  收藏代码
  1. public class User {  
  2.     private int userId;  
  3.     private String userName;  
  4.     private String password;  
  5.     private String comment;  
  6.       
  7.     //setter and getter  
  8. }  

 UserDao.java

Java代码  收藏代码
  1. public interface UserDao {  
  2.   
  3.     public int insertAndGetId(User user);  
  4.   
  5. }  

 测试:

Java代码  收藏代码
  1. User user = new User();  
  2. user.setUserName("chenzhou");  
  3. user.setPassword("xxxx");  
  4. user.setComment("测试插入数据返回主键功能");  
  5.   
  6. System.out.println("插入前主键为:"+user.getUserId());  
  7. userDao.insertAndGetId(user);//插入操作  
  8. System.out.println("插入后主键为:"+user.getUserId());  

 输出:

Shell代码  收藏代码
  1. 插入前主键为:0  
  2. 插入后主键为:15  
分享到:
评论

相关推荐

    Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    总之,当在Oracle数据库中使用MyBatis进行批量插入时,务必注意适应Oracle的特定语法,如使用`INSERT ALL`,避免使用MySQL等其他数据库系统适用的语法,如逗号分隔的`VALUES`列表。同时,确保正确处理主键生成逻辑,...

    MyBatis批量插入(insert)数据操作

    `&lt;selectKey&gt;`标签用于获取自增主键的值,通常在MySQL中,当`useGeneratedKeys`设为`true`时,可以获取到自增ID。这里设置为`AFTER`,意味着在插入语句执行后获取新生成的ID。 4. **foreach标签的使用**: `...

    mybaits动态sql教程

    8. selectKey:主要用于在insert操作中,执行一个数据库操作(如获取序列值或执行一个自定义的数据库函数)并将返回的主键值设置到传入的实体类中。这通常用在需要自动生成主键的数据库系统中,例如Oracle的序列或...

    Mybatis增强工具包-只做增强不做改变简化CRUD操作

    Mybatis Plus提供了丰富的 CRUD 方法,如 insert、insertBatch、updateById、deleteById 等,使得开发者无需手动编写繁琐的 SQL 语句,极大地提高了开发效率。 2. **条件构造器**: 使用 QueryWrapper 或 ...

    spring+mybatis-plus集成

    通过这种方式,开发者可以利用Spring的强大功能管理事务,同时享受MyBatis-Plus带来的便捷操作,如自动填充主键、条件构造器、分页查询等。在实际项目中,还可以根据需求进一步配置MyBatis-Plus的拦截器、插件等高级...

    MYSQL中常用的强制性操作(例如强制索引)

    对于返回大量数据的查询,`SQL_BUFFER_RESULT`可以将结果集存储到临时表,以便快速释放表锁并提供长时间的结果: ```sql SELECT SQL_BUFFER_RESULT * FROM TABLE1 WHERE … ``` 10. **分组使用临时表(SQL_BIG_...

    springmybatis

    Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'); 到此为止,前期准备工作就完成了。下面开始真正配置mybatis项目了。 1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用...

    Mybatis增强工具包(Mybatis plus) v3.5.3.2.zip

    内置了分页插件,可以方便地实现分页查询,支持多种数据库的分页方式,如 MySQL、Oracle 等,使用 `Page` 对象进行分页参数设置和结果接收。 6. **主键生成策略**: 提供了多种主键生成策略,包括 Identity(自动...

Global site tag (gtag.js) - Google Analytics