Action
@RequestMapping(value="/addSubscribe")
public String addSubscribe(@ModelAttribute(value="subscribe")Subscribe subscribe,HttpServletResponse response){
//片段1
subscribeService.addSubscribe(subscribe);
String result = JsonUtil.getJson(Constant.RESULT_SUCCESS, Constant.CODE_SUCCESS, subscribe.getId()).toString();
PrintUtil.print(result, response);
return null;
}
Service
public void addSubscribe(Subscribe subscribe){
//片段2
subscribeMapper.addSubscribe(subscribe);
}
Mapper
//片段3
public void addSubscribe(Subscribe subscribe);
xml
<insert id="addSubscribe" parameterType="Subscribe" useGeneratedKeys="true" keyProperty="id">
insert into t_subscribe <include refid="addSubscribeSql"></include>
</insert>
<sql id="addSubscribeSql">
<set>
<if test="user.id != null">uid = #{user.id }</if>
<if test="auser.id != null">,aid = #{auser.id }</if>
</set>
</sql>
keyProperty:
取值范围true|false
默认值是:false
含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。 MySQL和SQLServer执行auto-generated
key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取。
但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了
useGeneratedKeys:
标记一个属性, MyBatis 会自动通过 getGeneratedKeys 或者通过 insert 语句的 selectKey 子元素设置它的值。默认: 不设置。