zoukankan      html  css  js  c++  java
  • Mybatis动态SQL

    1.添加数据设置(Newsxml配置)

    <insert id="doCreate" parameterType="News" keyProperty="nid" keyColumn="nid" useGeneratedKeys="true"><!--添加数据-->
            INSERT INTO news VALUES
            <trim prefix="(" suffix=")" suffixOverrides=",">,</trim>
        </insert>

    2.if语句添加配置

     <insert id="doCreate" parameterType="News" keyProperty="nid" keyColumn="nid" useGeneratedKeys="true">
            INSERT INTO news(title,content) VALUES
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="title == null">
                    'NOTitle',
                </if>
                <if test="title != null">
                    #{title},
                </if>
                <if test="content == null">
                    'NOContent',
                </if>
                <if test="content != null">
                    #{content},
                </if>
            </trim>
        </insert>

    3.if判断分页查询

    <select id="findSplit" resultType="News" parameterType="java.util.Map">
            SELECT nid,title,content FROM news
            <if test="column != null and keyword != null and column != &quot;&quot; and keyword != &quot;&quot;">
                WHERE ${column} LIKE #{keyword}
            </if>
            LIMIT #{start},#{lineSize} ;
        </select>
        <select id="getAllCount" resultType="java.lang.Long" parameterType="java.util.Map">
            SELECT COUNT(*) FROM news
            <if test="column != null and keyword != null and column != &quot;&quot; and keyword != &quot;&quot;">
                WHERE ${column} LIKE #{keyword}
            </if>
        </select>

    4.多次判断,if只能执行一次判断

        <select id="findAllCondition" resultType="News" parameterType="java.util.Map">
            SELECT nid,title FROM news
            <where>
                <choose>
                    <when test="nid != null and title !=null and content !=null">
                        nid=#{nid} AND title=#{title} AND content=#{content}
                    </when>
                    <when test="nid != null and title !=null and content==null">
                        nid=#{nid} AND title=#{title}
                    </when>
                    <when test="nid != null and title ==null and content!=null">
                        nid=#{nid} AND content=#{content}
                    </when>
                </choose>
            </where>
        </select>

    5.set动态更新

        <update id="doEdit" parameterType="News">
            UPDATE news
            <set>
                <if test="title != null and title != &quot;&quot;">
                    title=#{title},
                </if>
                <if test="content != null and content != &quot;&quot;">
                    content=#{content},
                </if>
            </set>
            <where>
              <if test="nid != null and nid != 0">
                  nid=#{nid}
              </if>
            </where>
        </update>

    6.指定范围数据查询foreach

    <select id="findByIds" resultType="News" parameterType="java.lang.Long">
            <include refid="selectBase"/>
            <where>
                nid IN
                <foreach collection="array" open="(" close=")" separator="," item="ele">
                  #{ele}
                </foreach>
            </where>
        </select>

    7.批量删除foreach

    <delete id="doRemoveByIds" parameterType="java.lang.Long">
            DELETE FROM news
            <where>
                nid IN
                <foreach collection="array" open="(" close=")" separator="," item="ele">
                    #{ele}
                </foreach>
            </where>
        </delete>
  • 相关阅读:
    【分享】项目开发容易出现的问题?身为前端/后端你见到过吗?
    标准化API设计的重要性
    【分享】对外API接口安全设计
    【实例】调用数据库自动生成接口代码
    【翻译】API-First是什么概念?有什么商业价值?
    保障接口安全的5种常见方式
    【翻译】使用OpenAPI规范进行安全的API设计
    为什么需要API文档
    利用java的反射,实现工厂创建对象
    Cesium入门8
  • 原文地址:https://www.cnblogs.com/fcitx/p/11087487.html
Copyright © 2011-2022 走看看