第一步:
在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名!
mysql
<
insert
id
=
"insert"
parameterType
=
"Bean"
useGeneratedKeys
=
"true"
keyProperty
=
"id"
>
insert into spares(spares_id,spares_name,
spares_type_id,spares_spec)
values(#{id},#{name},#{typeId},#{spec})
</
insert
>
oracle
<insert id="saveOrderPackage" parameterType="OrderPackage">
<selectKey resultType="int" order="BEFORE" keyProperty="order_id">
SELECT
ORDER_PACKAGE.NEXTVAL AS order_id FROM DUAL
</selectKey>
INSERT INTO ORDER_PACKAGE (
ORDER_ID,
FK_ORDER_ID,
....
)
</insert>
第二步:
oracle为例,Mybatis执行完插入语句后,自动将自增长值赋值给对象OrderPackage
的属性order_id
。因此,可通过OrderPackage
对应的getter方法获取!
int
count = sparesServiceMapper.insert(OrderPackage);
System.out.println(
"共插入"
+ count +
"条记录!"
+
"\n刚刚插入记录的主键自增长值为:"
+ OrderPackage.getOrder_id());