在程序开发过程中,当保存数据时需要获取保存的数据进行处理或者返回,这时就需要将数据保存完后再返回(填入自动生成的主键)。
配置文件中的代码:
<!--添加记录,并返回保存的记录 -->
<insert id="saveAndReturn" parameterType="GreetingcardShareCardView" useGeneratedKeys="true" keyProperty="id">
INSERT INTO `greetingcard_share_card_view` (`shareId`, `pig`, `updateTime`, `createTime`)
VALUES (#{shareId}, #{pig}, NOW(), NOW());
</insert>
在mybatis的映射配置文件中,设置如下属性值parameterType=“GreetingcardShareCardView” :保存的实体类
useGeneratedKeys=“true” :设置主键
keyProperty=“id”:主键
Java映射层代码
//repo层
void saveAndReturn(GreetingcardShareCardView greetingcardShareCardView);
保存成功之后,会更新传递的实体类实例,此时实例就是有主键值的新数据,可以在业务逻辑层直接使用
Java业务逻辑层:
GreetingcardShareCardView greetingcardShareCardView = new GreetingcardShareCardView();
greetingcardShareCardView.setPig(pig);
greetingcardShareCardView.setShareId(greetingcardShareCard.getId());
//保存
greetingcardShareCardViewImpl.saveAndReturn(greetingcardShareCardView);
//获取保存后的主键
Long id = greetingcardShareCardView.getId();