insert into table_name(username,password) values ( #{username,jdbcType=VARCHAR}, _selectkey resu">
当前位置:   article > 正文

mybatis+oracle/mysql 插入数据后返回主键_selectkey resulttype="long" order="after" keyprope

selectkey resulttype="long" order="after" keyproperty="cmsserviceincome.id

1.mysql

useGeneratedKeys --true主键自增

  1. <insert id="save"
  2. parameterType="com.xxx.User"
  3. useGeneratedKeys="true"keyProperty="id">
  4. insert into table_name(username,password) values (
  5. #{username,jdbcType=VARCHAR},
  6. #{password,jdbcType=VARCHAR}
  7. )
  8. </insert>

 

2.oracle

1)数据库中创建了序列,触发器情况下

order类型AFTER--代表在insert语句执行后   BEFORE --代表在insert语句执行后
keyProperty   --返回属性

t_user_id_SEQ --序列 

查询全部序列,找到你自己的表的序列

SELECT * FROM user_sequences
  1. <insert id="save" parameterType="com.xxx.User">
  2. <selectKey resultType="Long" order="AFTER" keyProperty="id">
  3. select t_user_id_SEQ.CURRVAL as id from dual
  4. </selectKey>
  5. insert into table_name(username,password) values (#{username,jdbcType=VARCHAR},
  6. #{password,jdbcType=VARCHAR}
  7. )

2)数据库创建序列,未创建触发器

  1. <insert id="save" parameterType="com.xxx.User">
  2. <selectKey resultType="Long" order="BEFORE" keyProperty="id">
  3. select t_user_id_SEQ.NEXTVAL as id from dual
  4. </selectKey>
  5. insert into table_name(username,password) values (#{username,jdbcType=VARCHAR},
  6. #{password,jdbcType=VARCHAR}
  7. )

 

在实体类中使用

  1. User user = new User();
  2. user.setUsername(username);
  3. user.setPassword(password);
  4. userDao.save(user);
  5. return user.getId();

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/241373
推荐阅读
相关标签
  

闽ICP备14008679号