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 子元素設置它的值。默認: 不設置。