Mybatis动态SQL

来源:互联网 发布:云南大学软件学院导师 编辑:程序博客网 时间:2024/06/05 07:39

可以根据传人的SQL参数不同,生成不同的SQL语句
MyBatis提供了一套标签,用于在XML中动态拼凑SQL语句

select * from emp<if test="xxx">...</if><chose>    <when test="xxx">...</when>    <when test="xxx">...</when>    <otherwise>...</otherwise></choose><foreach></foreach><where><set>

组合查询功能
a.笔记:标题,状态,开始日期,结束日期
根据上述条件,用户可以随意输入信息,按信息搜索

<!-- 组合查询 -->    <select id="hightSearch" parameterType="map" resultType="org.tarena.note.entity.Note">        select             cn_note_id,            cn_note_title,            cn_note_create_time         from cn_note        <where>            <if test="title!=null">                cn_note_title like #{title}            </if>            <if test="status!=null">                and cn_note_status_id = #{status}            </if>            <if test="beginDate!=null">                and cn_note_create_time >= #{beginDate}            </if>            <if test="endDate!=null">                and cn_note_create_time &lt;= #{endDate}            </if>        </where>    </select>

b.懂爱更新SQL
笔记标题,创建时间,所属笔记本。ajax将这三值传入
如果3值不为空,则update传入

<!-- 动态更新,将一些不为null的属性更新到数据库 -->    <update id="dynamicUpdate" parameterType="org.tarena.note.entity.Note">        update cn_note        <set>            <if test="cn_notebook_id != null">                cn_notebook_id = #{cn_notebook_id},            </if>            <if test="cn_user_id != null">                cn_user_id = #{cn_user_id},            </if>            <if test="cn_note_status_id != null">                cn_note_status_id = #{cn_note_status_id},            </if>            <if test="cn_note_type_id != null">                cn_note_type_id = #{cn_note_type_id},            </if>            <if test="cn_note_title != null">                cn_note_title = #{cn_note_title},            </if>            <if test="cn_note_body != null">                cn_note_body = #{cn_note_body},            </if>            <if test="cn_note_create_time != null">                cn_note_create_time = #{cn_note_create_time},            </if>            <if test="cn_note_last_modify_time != null">                cn_note_last_modify_time = #{cn_note_last_modify_time}            </if>        </set>        where            cn_note_id = #{cn_note_id}    </update>

c.批量删除
delete from cn_note where cn_note_id = ?

<delete id="deleteNotes">        delete from cn_note        where cn_note_id in        <foreach collection="array" item="id" open="(" close=")" separator=",">            #{id}        </foreach>    </delete>
0 0
原创粉丝点击