通常需要取得新插入数据的ID,可以通过一下方式来实现
方式一:
<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>
方式二:
<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 |
|
五、Service层实现
1 2 3 4 5 6 7 |
|
注意事项】
1.Mybatis Mapper 文件中,“useGeneratedKeys”和“keyProperty”必须添加,而且keyProperty一定得和java对象的属性名称一致,而不是表格的字段名
2.java Dao中的Insert方法,传递的参数必须为java对象,也就是Bean,而不能是某个参数。