动态SQL介绍

动态SQL

动态SQL:if与where标签

动态SQL-if与where标签

动态案例-动态更新

动态案例-动态更新

EmpMapper(接口)中对应代码块

//动态更新员工public void update2(Emp emp);

EmpMapper.xml中对应代码块

<!-- 动态更新员工--><update id="update2">update emp<set><if test="username != null">username = #{username},</if><if test="name != null">name = #{name},</if><if test="gender != null">gender = #{gender},</if><if test="image != null">image = #{image},</if><if test="job != null">job = #{job},</if><if test="entrydate != null">entrydate = #{entrydate},</if><if test="deptId != null">dept_id = #{deptId},</if><if test="updateTime != null">update_time = #{updateTime}</if></set>where id = #{id}</update>

com.itheima.SpringbootMybatisCrudApplicationTests(测试类)对应代码块

//动态更新员工 - 更新ID为18的员工 username 更新为 Tom111, name更新为 汤姆111, gender更新为2@Testpublic void testUpdate2(){//构造员工对象Emp emp = new Emp();emp.setId(18);emp.setUsername("Tom111");emp.setName("汤姆111");emp.setGender((short)2);emp.setUpdateTime(LocalDateTime.now());//执行更新员工操作empMapper.update2(emp);}

案例分析

案例分析

、、标签总结

案例分析

动态条件查询

EmpMapper(接口)中对应代码块

//动态条件查询public List<Emp> list(@Param("name") String name, @Param("gender") Short gender, @Param("begin") LocalDate begin ,@Param("end") LocalDate end);

EmpMapper.xml中对应代码块(SQL片段涉及到sql与include标签)

SQL片段涉及到sql与include标签

<sql id="commonSelect">select id,username,password,name,gender,image,job,entrydate,dept_id,create_time,update_timefrom emp</sql>
<!--resultType:单条记录所封装的类型--><select id="list" resultType="com.itheima.pojo.Emp"><include refid="commonSelect"/><where><if test="name != null">name like concat('%', #{name}, '%')</if><if test="gender != null">and gender = #{gender}</if><if test="begin != null and end != null">and entrydate between #{begin} and #{end}</if>order by update_time desc</where></select>

com.itheima.SpringbootMybatisCrudApplicationTests(测试类)对应代码块

//动态条件查询员工@Testpublic void testList(){List<Emp> empList = empMapper.list(null, (short)1, null, null);System.out.println(empList);}

批量删除员工(批量删除涉及-foreach标签)

批量删除-foreach标签

EmpMapper(接口)中对应代码块

 //批量删除员工public void deleteByIds(List<Integer> ids);

EmpMapper.xml中对应代码块

<!--批量删除员工 (18,19)--><!--collection: 遍历的集合item: 遍历出来的元素separator: 分隔符open: 遍历开始前拼接的SQL片段close: 遍历结束后拼接的SQL片段--><delete id="deleteByIds">delete  from emp where id in<foreach collection="list" item="id" separator="," open="(" close=")">#{id}</foreach></delete>

com.itheima.SpringbootMybatisCrudApplicationTests(测试类)对应代码块

 //批量删除员工 - 18,19@Testpublic void testDeleteByIds(){List<Integer> ids = Arrays.asList(18,19);empMapper.deleteByIds(ids);}

动态SQL总结

动态SQL总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919066.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919066.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919066.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI可行性分析:数据×算法×反馈=成功

3.1 从场景到AI可行性分析:需求拆解为“数据+算法+反馈” 核心公式: AI可行性 = 数据可获得性 算法适配性 反馈闭环性 (任一要素为0则需求不可行) 一、传统需求 vs AI需求本质差异 需求文档对比(电商案例) 维度 传统需求文档(购物车功能) AI需求文档(商品推荐系…

【图论】分层图 / 拆点

大多数都是同一个套路&#xff0c;将图拆开成几个图&#xff0c;每一层都对应着一个不同的状态&#xff0c;比如把到点 i 的状态拆成经过了 j 次操作所得的 xx 结果&#xff0c;一般数据不会很大 目前遇到的可分为 3 类&#xff1a; ①.给你最多 k 次操作&#xff0c;求 xx 结…

VS Code配置MinGW64编译MATIO库

VS Code 使用 MinGW64 编译 C 代码并配置 MATIO 库的完整步骤 1. 安装 MSYS2 下载 MSYS2 访问 MSYS2 官网下载安装包&#xff08;选择 x86_64 版本&#xff09;默认安装路径&#xff1a;C:\msys64 更新 MSYS2 包数据库 打开 MSYS2 MinGW 64-bit&#xff08;注意不是 MSYS&…

【前端Vue】使用ElementUI实现表单中可选择可编辑的下拉框

由于项目在vue的开发框架下&#xff0c;因此使用ElementUI组件库进行实现。我希望可选择可编辑的下拉框右侧有跟下拉框一样的箭头&#xff0c;并且在未输入任何内容时&#xff0c;点击该框体会出现选择列表进行填充数据的选择&#xff0c;点击选中数据后列表消失&#xff0c;数…

每日五个pyecharts可视化图表-line:从入门到精通 (4)

欢迎来到pyecharts折线图系列的第四篇文章&#xff01;在前三篇中&#xff0c;我们已经掌握了多种折线图类型&#xff0c;包括基本折线图、平滑折线图、雨量流量关系图、多X轴折线图、堆叠区域图和阶梯图等。在本文中&#xff0c;我们将继续探索五种更高级的折线图类型&#xf…

MySQL中的字符串函数

目录 一、字符串【分割】函数&#xff1a;SUBSTRING_INDEX() SUBSTRING_INDEX函数 练习题 统计每种性别的人数 提取博客URL中的用户名 截取出年龄 SQL83 商品id数据清洗统计 SQL250 查找字符串中逗号出现的次数 二、字符串【截取】函数&#xff1a;SUBSTRING() 基本语…

CodeBuddy IDE深度体验:AI驱动的全栈开发新时代

在人工智能技术迅猛发展的今天&#xff0c;开发者工具正在经历一场深刻的变革。腾讯推出的CodeBuddy IDE作为全球首个“产设研一体”的AI全栈高级工程师工具&#xff0c;重新定义了开发者的日常工作流程。 从需求分析到设计、编码、部署&#xff0c;CodeBuddy通过AI能力将传统…

实现Android图片手势缩放功能的完整自定义View方案,结合了多种手势交互功能

主要功能特点&#xff1a;支持双指手势缩放图片&#xff0c;通过ScaleGestureDetector实现平滑的缩放效果25双击图片可切换初始大小和中等放大比例16使用Matrix进行图像变换&#xff0c;保持缩放中心点为手势焦点位置57自动缩放动画通过Runnable实现渐进式变化1限制最小和最大缩…

uni-app实战教程 从0到1开发 画图软件 (橡皮擦)

一、本期内容简述1. 开发内容上一期&#xff0c;我们一起学习了如何进行绘画&#xff0c;本期我们将学习如何擦除我们所绘画的内容&#xff0c;也就是“橡皮擦”功能。首先&#xff0c;我们应该明确需求&#xff0c;橡皮擦可以擦除掉我们绘画的内容。2. 开发需求所以开发需求&a…

《A Practical Guide to Building Agents》文档学习

《A Practical Guide to Building Agents》文档总结 该文档是一份面向产品和工程团队的实用指南&#xff0c;旨在帮助团队探索并构建首个基于大语言模型&#xff08;LLM&#xff09;的智能体&#xff08;Agent&#xff09;&#xff0c;提炼了大量客户部署经验&#xff0c;提供了…

OpenCV图像注册模块

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 注册模块实现了参数化图像配准。所实现的方法是直接对齐&#xff08;direct alignment&#xff09;&#xff0c;即&#xff0c;它直接使用像素值来…

模型驱动与分布式建模:技术深度与实战落地指南

摘要 在AI、云原生与全球化协作的大潮中&#xff0c;模型驱动架构&#xff08;MDA&#xff09;与分布式建模不再是概念&#xff0c;而是支撑复杂系统设计与持续演化的核心引擎。本文从元模型、模型转换引擎&#xff0c;到协同协议、冲突解决算法&#xff0c;再到AI辅助建模与自…

计算机基础速通--数据结构·图的基础应用二(基础图算法)

如有问题大概率是我的理解比较片面&#xff0c;欢迎评论区或者私信指正。 最近了解到了一个新的改变和提高自己的方法时刻记录不论多小的事情都记下&#xff0c;我目前用了4天&#xff0c;之前感觉一天天忙死但没啥收获&#xff0c;但是记录了之后知道自己的时间花在了哪里&…

设计模式-策略模式 Java

模式概述 策略模式是一种行为型设计模式&#xff0c;它通过定义一系列可互换的算法&#xff0c;并将每个算法封装成独立类&#xff0c;使客户端能够根据需要动态切换算法 简单代码示例 // 1. 抽象策略接口 interface PaymentStrategy {void pay(int amount); }// 2. 具体策略实…

【机器学习深度学习】客观评估训练程度

目录 前言 一、什么是客观评估&#xff1f; 二、客观评估的两大核心方法 1. 判别式评测&#xff08;Discriminative Evaluation&#xff09; 2. 生成式评测&#xff08;Generative Evaluation&#xff09; 三、为什么客观评估成本更高&#xff1f; 1.训练目标收紧 2.训…

Linux软件编程:线程间通信

目录 一、线程间通信基础 1. 概念 2. 通信基础&#xff1a;共享空间 二、互斥锁&#xff08;Mutex&#xff09; 1. 概念 2. 使用流程 3. 函数接口 三、死锁 1. 概念 2. 死锁产生的 4 个必要条件 3. 避免死锁的方法 四、信号量&#xff08;Semaphore&#xff09; 1…

【学习笔记】JVM GC回收机制

1.三种基本的垃圾回收算法 1>标记-清除法 ①先将从树根开始&#xff0c;可以到达的对象标记为可达&#xff08;JVM中的对象们存储为一颗树&#xff09; ②将没有标记的对象清除掉 缺点&#xff1a;会产生大量内存碎片 2>复制算法&#xff08;新生代&#xff09; ①先将a区…

软件的终极:为70亿人编写70亿个不同的软件

这是个脑洞大开的想法。昨天晚上&#xff0c;我在用Claude code帮我写一个小工具&#xff0c;用来管理我本地那些乱七八糟的文档。写着写着&#xff0c;突然意识到一个问题&#xff1a;这个工具完全是按照我的工作习惯定制的——我喜欢用Markdown&#xff0c;习惯把TODO放在文件…

LakeHouse--湖仓一体架构

大家可能发现了,近些年湖仓一体数据架构被提及的频率越来越高。各家大厂也有湖仓一体架构的实践,也有很多公开分享。 那什么是湖仓一体?为什么出现了湖仓一体架构,换言之,它解决了以前数据仓库、数据湖+数仓两层架构所不能解决的什么问题? 本文会从数仓、数据湖依次介绍…

基于FPGA的实时图像处理系统(1)——SDRAM回环测试

SDRAM回环设计 文章目录SDRAM回环设计一、SDRAM简介1、引脚2、内部结构框图3、操作指令二、系统设计三、实现流程1、SDRAM接口2、FIFO设置3、内部SDRAM的控制模块4、其他四、实现效果五、总结六、代码1、top2、sdram_top3、sdram_ctrl一、SDRAM简介 SDRAM英文全称“Synchronou…