MyBatis+MySQL 返回插入的主键ID

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

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

useGeneratedKeys="true" keyProperty="userId"  这两句话加进去要传的值   userId 是要返回的id
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">  
    insert into user(userName,password,comment)  
    values(#{userName},#{password},#{comment})  
</insert>
    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());  

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

mybatis插入数据到oracle   主键不自增的

--查询所有的序列
select
* from all_sequences

MyBatis+MySQL 返回插入的主键ID

MyBatis+MySQL 返回插入的主键ID

常用这个before的,不过也有after

MyBatis+MySQL 返回插入的主键ID

如果是用after 的话,先运行插入,然后在去查询出id

为啥不推荐用after呢,如果批量插入的话,它只能拿到最后当前的id,这样就相对来说不那么好用了

======================================================================================================

mybatis参数

MyBatis+MySQL 返回插入的主键ID

 MyBatis+MySQL 返回插入的主键ID

MyBatis+MySQL 返回插入的主键ID

如果email为空的话,就会报错

MyBatis+MySQL 返回插入的主键ID

 查询新方法:感觉好流弊

MyBatis+MySQL 返回插入的主键ID

 MyBatis+MySQL 返回插入的主键ID