通常需要取得新插入数据的ID,可以通过一下方式来实现
方式一:
[html] view plain copy <insert id="doCreate" parameterType="Address" useGeneratedKeys="true" keyProperty="id"> INSERT INTO Address(UId,LinkName,Address,Phone,Remark,Time,ZipCode) VALUES(#{uid},#{linkName},#{address},#{phone},#{remark},now(),#{zipCode}) </insert>
方式二:
[html] view plain copy <insert id="doCreate" parameterType="Address" > <selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" > SELECT @@IDENTITY </selectKey> INSERT INTO Address(UId,LinkName,Address,Phone,Remark,Time,ZipCode) VALUES(#{uid},#{linkName},#{address},#{phone},#{remark},now(),#{zipCode}) </insert>
注意程序里取得address.getId()即可取到插入数据的自增ID,而不是取得sql执行的返回值。
Dao层接口
1 void insert( @Param ( "user" ) User user);五、Service层实现
1 2 3 4 5 6 7 @Override public void insert() { User user = new User(); user.setName( "zain" ); dao.insert(user); System.out.println(user.getUserId); //发现ID已经获取了 }