IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 动态sql -> 正文阅读

[大数据]动态sql

1<if></if>的使用:

 <select id="roleById" resultType="Role" parameterType="Integer">
        SELECT * FROM role
        where 1=1
            <if test=" id != null">
               and id = #{id}
            </if>
    </select>

2<where>的使用

   <select id="roleAll" resultType="Role">
        SELECT * FROM role
       <where>
           <if test=" id != null">
                id = #{id}
           </if>
           <if test=" name != null">
              and name = #{name}
           </if>
           <if test=" remark != null">
               and remark = #{remark}
           </if>
       </where>
    </select>

3、<trim>的使用

   <insert id="roleAdd">
        insert into role
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test=" id !=null">id,</if>
                <if test=" name !=null">name,</if>
                <if test=" remark !=null">remark,</if>
            </trim>
-- suffixOverrides=","去掉最后一个逗号  suffix:后缀  prefix:前缀  prefixoverride:去掉第一个逗号  
        <trim prefix=" values(" suffix=")" suffixOverrides=",">
            <if test=" id !=null">#{id},</if>
            <if test=" name !=null">#{name},</if>
            <if test=" remark !=null">#{remark},</if>
        </trim>
    </insert>

4、<set>的使用

 <update id="roleUpdate">
        update role
                <set>
                    <if test=" name !=null">name=#{name},</if>
                    <if test=" remark !=null">remark=#{remark},</if>
                </set>
            where id=#{id}
    </update>

5、<foreach>的使用

建立一个实体类,里面封装一个 List<Integer> ids 的属性

package com.zy.bean;

import lombok.Data;

import java.util.List;

@Data
public class Role {
    private Integer id;
    private String name;
    private String remark;
    private List<Integer> ids;
}
  <!--
            collection:指定输入对象中的集合属性
            item:每次遍历生成的对象
            open:开始遍历时的拼接字符串
            close:结束时拼接的字符串
            separator:遍历对象之间需要拼接的字符串
          -->  



    <select id="roleByListId" resultType="Role" parameterType="Integer">
        SELECT * FROM role where id in 
            <foreach collection="ids" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
    </select>

6.sql片段

 有时候可能某个 sql 语句我们用的特别多,为了增加代码的重用性,简化代码,我们需要将这些代码抽取出来,然后使用时直接调用。

  <!--定义sql语句-->
 <sql id="selectRole">
     <if test=" id != null">
         id = #{id}
     </if>
     <if test=" name != null">
         and name = #{name}
     </if>
     <if test=" remark != null">
         and remark = #{remark}
     </if>
 </sql>

<!--    调用sql语句-->
    <select id="roleAll" resultType="Role">
        SELECT * FROM role
       <trim prefix="where" prefixOverrides="and | or">
           <!-- 引用 sql 片段,如果refid 指定的不在本文件中,那么需要在前面加上 namespace -->
           <include refid="selectRole"></include>
       </trim>
    </select>

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 12:53:31  更:2021-12-13 12:55:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:50:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码