您的位置:首页 > 其它

mybatis insert操作 返回插入的那条数据的id

2018-01-22 16:47 495 查看
1、useGeneratedKeys=”true” 可以获取自增长的ID 只支持具有自增长方式的那种数据库(mysql, mssql 等 但 oracle 就不支持了 )

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="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());  //没有 0

userDao.insertAndGetId(user);//插入操作  

System.out.println("插入后主键为:"+user.getUserId());  //userId 的值

2.对于不支持自动生成主键(如Oracle),可以采用以下方式

<insert id="insert" parameterType="com.test.User">

   <selectKey resultType="INTEGER" order="BEFORE" keyProperty="userId">  

       SELECT SEQ_USER.NEXTVAL as userId from DUAL

   </selectKey> 

    insert into user (user_id, user_name, modified, state)

    values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR},  #{modified,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER})

</insert>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: