获取mysql数据库中的自增主键属性值和非自增主键属性值的方法

时间:2021-05-27 20:58:21
  1. 获取mysql数据库中的自增属性值得方法:
    将插入数据的自增属性值通过SELECT LAST_INSERT_ID()的方法得到。e.g.:User表中有一个id为主键,且设置为自增属性,现在往数据库中插入一条数据,并且要返回自增属性的值。
<insert id="insertUser" parameterType="com.dy.po.User">
insert into 
user (username,birthday,sex,address)
value(#{username},#{birthday},#{sex},#{address})
<selectKey keyProperty="id" order="AFTER" resultType="int">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>

其中:keyProperty:将查询到的主键设置到parameterType指定的对象的那个属性;
order:SELECT LAST_INSERT_ID()执行顺序,相当于insert语句来说它的执行顺序。
resultType:指定SELECT LAST_INSERT_ID()的结果类型。
在insert之后将数据返回到user对象中,通过user.属性值得到相应的自增属性值。

2 获取mysql数据库中的非自增属性值的方法
主要是通过使用mysql的uuid()函数生成主键,同样拿上述例子,需要修改表中id字段类型为string,长度设置成35位。
与上面的顺序不同的是,需要执行的uuid()语句顺序相对于insert语句之前执行。

<insert id="insertUser" parameterType="com.dy.po.User">
insert into 
user (username,birthday,sex,address)
value(#{username},#{birthday},#{sex},#{address})
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">
        SELECT uuid()
</selectKey> 
</selectKey>
</insert>