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