新增数据返回主键的问题

1、表结构

CREATE TABLE `user` (
  `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户自增id',//必须设置为自增主键
  `user_name` varchar(64) NOT NULL COMMENT '用户名',
  `user_contactor` varchar(32) DEFAULT NULL COMMENT '联系人',
  `user_phone` varchar(16) DEFAULT NULL COMMENT '联系电话',
  `status` varchar(2) DEFAULT '1' COMMENT '状态  0禁用  1正常',
  `create_user` varchar(16) DEFAULT NULL COMMENT '创建人',
  `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  `last_modify_user` varchar(16) DEFAULT NULL COMMENT '最近修改信息人',
  `last_modify_date` datetime DEFAULT NULL COMMENT '最后修改时间',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';

2、mapper.xml代码

  第一种方式

<insert id="saveUser" parameterType="com.mysome.UserDTO" useGeneratedKeys="true" keyProperty="userId" keyColumn="user_id">
        INSERT INTO user(
        user_name, user_contactor, user_phone, status,
        create_user,create_date,last_modify_user,last_modify_date
        )
        VALUES (
        #{userName}, #{userContactor},#{userPhone}, #{status}, 
        #{createUser},#{createDate},#{lastModifyUser}, #{lastModifyDate}
        )
</insert>

  第二种方式

<insert id="saveUser" parameterType="com.mysome.UserDTO">
        INSERT INTO user(
        user_name, user_contactor, user_phone, status,
        create_user,create_date,last_modify_user,last_modify_date
        )
        VALUES (
        #{userName}, #{userContactor},#{userPhone}, #{status}, 
        #{createUser},#{createDate},#{lastModifyUser}, #{lastModifyDate}
        )
        <selectKey resultType="java.lang.Long" keyProperty="userId" order="AFTER">
            SELECT LAST_INSERT_ID()
        </selectKey>
</insert>

3、dao层代码

  int saveUser(UserDTO user);  

  进行保存操作后,返回的主键值就保存在参数user的userId中,而saveUser方法返回的则是保存操作返回的影响行数,成功则为1,失败为0。

  

原文地址:https://www.cnblogs.com/yiyibinbin/p/9468238.html