天天看点

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

  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>