MyBatis+MySQL 返回插入记录的主键ID

来源:互联网 发布:如何安装ps软件 编辑:程序博客网 时间:2024/06/04 22:53

今天用到了多个表之间的关系,另一个表中的一个字段要以第一个表的主键作为外键。

下面说两种方法,MyBatis+MySQL 返回插入记录的主键ID:
第一种:

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">    insert into user(userName,password,comment)    values(#{userName},#{password},#{comment})</insert>

第二种:

<insert id="insert" parameterType="cn.***.beans.LogObject" >    <selectKey resultType="java.lang.Integer" order="BEFORE" keyProperty="id">        SELECT LOGS_SEQ.nextval AS ID FROM DUAL    </selectKey>    INSERT INTO S_T_LOGS (        ID,         USER_ID,         USER_NAME,         USER_IP,         OPERATION_TIME,        DESCRIPTION,         RESOURCE_ID)     VALUES (        #{id},         #{userId},         #{userName},         #{userIp},         #{operationTime},        #{description},         #{resourceId})</insert>

这两种写法都可以,但有两点一定要注意:

一: keyProperty=”id” 这个id必须是实体的id,而不是数据表的主键id,否则,得不到正确的返回结果;

二:接收返回值时候,必须用实体的get属性,而不能定义变量,否则,接收不到正确的返回结果:即必须用user.getId()来接收。

0 0
原创粉丝点击