添加數據並返回對應的id

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 子元素設置它的值。默認: 不設置。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章