赞
踩
设计表的时候有两种主键,一种自增主键,一般为int类型,一种为非自增的主键,例如用uuid等。
-
- <insert id="insertUser" parameterType="com.demo.User">
- <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
- SELECT LAST_INSERT_ID()
- </selectKey>
- insert into t_user (username,password,create_date) values(#{username},#{password},#{createDate})
- </insert>
这里以UUID为例,跟自增主键方式相比,这里的不同之处只有两点
- <insert id="" parameterType="">
- <selectKey keyProperty="approvalId" resultType="java.lang.String" order="BEFORE">
- select replace(uuid(),'-','') AS APPROVAL_ID
- </selectKey>
- insert into 表名 (APPROVAL_ID,....) values(#{approvalId,jdbcType=VARCHAR},...)
- </insert>
keyProperty:对应实体类中的属性
resultType:返回结果类型
order:BEFORE 标识在执行插入语句之前执行
AS 后面的对应 数据表中的相应字段名
在设置keyProperty="approvalId"时这段代码会在执行insert语句之前产生一条uuid并赋值到当前实体类对象中的approvalId中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。