mybatis中动态sql语句like concat(“%“,#{xm},“%“)

1、动态SQL是一种可以根据不同条件生成不同SQL语句的技术,随着用户输入或外部条件变化而变化的SQL语句

2、SQL语句中的like模糊查询   xm like '%小米%',但开发中经常用到 xm like concat("%",#{xm},"%"),可以防止sql注入

3、concat()函数用于将多个字符串连接成一个字符串

4、动态标签<if>:用于判断条件是否成立,使用test属性进行条件判断,如果条件为true,则拼接SQL

    IPage<JcCVo> selectByCyJddm(Page<JcCVo> page, @Param("xm")String xm,@Param("hjqx")String hjqx, @Param("zszldm") String zszldm, @Param("sfzhm")String sfzhm, @Param("jddm") String jddm, @Param("zszldmx") String zszldmx);
<select id="selectByCJddm" resultType="org.jeecg.modules.wlyg.vo.JcVo">SELECT *,CONCAT(LEFT(sfzhm,6),'********',RIGHT(sfzhm,4)) AS sfzhmbfrom jc_c where sfsc='N'<if test="hjqx == 'ws' ">AND  hjqx NOT LIKE '33%'  AND zszldm like 'S%'</if><if test="zszldm =='S1'">AND LEFT(zszldm, 2) LIKE 'S1'</if><if test="zszldm =='S0'">AND LEFT(zszldm, 2) LIKE 'S0'</if><if test="zszldmx != null and zszldmx != '' ">and zszldm = #{zszldmx}</if><if test="sfzhm != null and sfzhm != '' ">and sfzhm like concat("%",#{sfzhm},"%")</if><if test="jddm != null and jddm != '' ">and jddm = #{jddm}</if><if test="xm != null and xm != '' ">and xm like concat("%",#{xm},"%")</if>AND zszt='1'AND jddm is not nulland lbdm not like 'O%' and lbdm not like 'I%'</select>

5、动态标签<foreach>:一般用于批量操作,比如批量查询或删除

Integer getCynumberByZszl(@Param("ids") List<String> ids,@Param("flag") String flag);

foreach有几个属性:collection:遍历的集合        item:遍历出来的元素        separator:分割符        open:遍历开始前拼接的SQL片段        close:遍历结束后拼接的SQL片段

<select id="getCynumberByZszl" resultType="java.lang.Integer">SELECT count(*)FROM jc_cyzs swhere zszt='1'<if test="flag == 'zwcy' ">and s.zszldm LIKE 'S%' and s.zszldm != 'S000'</if><if test="flag == 'ptcy' ">and s.zszldm = 'S000'</if><if test="ids != null and ids != ''"><foreach collection="ids" item="id" open="and s.id in (" close=")" separator=",">#{id}</foreach></if></select>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules..mapper.Mapper"><select id="selectByCzId" resultType="org.jeecg.modules.wlyg.entity.Jc">select *from jc_cwhere id = #{czid}and sfsc = 'N'</select><select id="selectByCyJddm" resultType="org.jeecg.modules.wlyg.vo.Jc">SELECT *,CONCAT(LEFT(sfzhm,6),'********',RIGHT(sfzhm,4)) AS sfzhmbfrom jc_c where sfsc='N'<if test="hjqx == 'bq' ">AND hjqx like'330322'  AND zszldm like 'S%'</if><if test="hjqx == 'wq' ">AND hjqx NOT LIKE '330322' AND hjqx LIKE '33%'  AND zszldm like 'S%'</if><if test="hjqx == 'ws' ">AND  hjqx NOT LIKE '33%'  AND zszldm like 'S%'</if><if test="zszldm =='S1'">AND LEFT(zszldm, 2) LIKE 'S1'</if><if test="zszldm =='S2'">AND LEFT(zszldm, 2) LIKE 'S2'</if><if test="zszldm =='S5'">AND LEFT(zszldm, 2) LIKE 'S5'</if><if test="zszldm =='S0'">AND LEFT(zszldm, 2) LIKE 'S0'</if><if test="zszldmx != null and zszldmx != '' ">and zszldm = #{zszldmx}</if><if test="sfzhm != null and sfzhm != '' ">and sfzhm like concat("%",#{sfzhm},"%")</if><if test="jddm != null and jddm != '' ">and jddm = #{jddm}</if><if test="xm != null and xm != '' ">and xm like concat("%",#{xm},"%")</if>AND zszt='1'AND jddm is not nulland lbdm not like 'O%' and lbdm not like 'I%'</select><select id="getCynumberByZszl" resultType="java.lang.Integer">SELECT count(*)FROM jc_cyzs swhere zszt='1'<if test="flag == 'zwcy' ">and s.zszldm LIKE 'S%' and s.zszldm != 'S000'</if><if test="flag == 'ptcy' ">and s.zszldm = 'S000'</if><if test="ids != null and ids != ''"><foreach collection="ids" item="id" open="and s.id in (" close=")" separator=",">#{id}</foreach></if></select></mapper>

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

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

相关文章

程序员必备的ChatGPT技巧:从代码调试到项目管理

近年来&#xff0c;随着人工智能技术的迅猛发展&#xff0c;ChatGPT作为一种强大的对话式AI工具&#xff0c;已经广泛应用于各个领域。而对于程序员来说&#xff0c;ChatGPT不仅可以帮助他们解决编程中的各种问题&#xff0c;还能在项目管理中发挥重要作用。本篇博客将详细介绍…

探索小众爱好:打造个人韧性与特色之路

在这个信息爆炸的时代&#xff0c;我们很容易陷入“千篇一律”的漩涡中&#xff0c;无论是生活方式还是兴趣爱好&#xff0c;似乎都趋向于某种“流行”或“热门”。然而&#xff0c;真正的个性与魅力&#xff0c;往往来源于那些不为大众所知的小众爱好。今天&#xff0c;我想和…

2024 最新运营小工具 API 推荐,助力高效工作

在当今数字化运营的时代&#xff0c;各种高效便捷的 API 服务成为了企业和个人提升运营效率、获取精准数据的得力助手。无论是进行市场调研、拓展业务&#xff0c;还是优化网络资源配置&#xff0c;都离不开这些强大的工具。本文将为您详细介绍一系列实用的运营小工具 API 服务…

Spring中@Autowired与@Resource注解的对比与差异

Spring中Autowired与Resource注解的对比与差异 在Spring框架中&#xff0c;Autowired和Resource是两个常用的注解&#xff0c;用于实现依赖注入&#xff08;Dependency Injection&#xff09;。虽然它们都服务于相同的目的&#xff0c;但在使用方式和特性上有所不同。本教程将…

教你如何一键高效下载视频号直播视频

在当今视频号直播盛行的时代&#xff0c;错过精彩直播内容再也不是遗憾&#xff01;地瓜网络技术倾情推出“视频号直播视频下载器”&#xff0c;为您捕捉每一个直播瞬间。本文将简明扼要地指导您如何利用这款神器下载视频号直播与回放视频&#xff0c;让超清MP4视频轻松入库&am…

SQL实现UUIDv7

当我们选择数据库的主键类型时&#xff0c;通常会考虑自增数字或者 UUID。但是这两种类型都有优缺点&#xff0c;自增字段简单有序&#xff0c;性能良好&#xff0c;最大的问题是无法保证全局唯一性&#xff0c;分布式场景受限&#xff1b;UUID 具有全局唯一性&#xff0c;适合…

Vscode 中launch.json与tasks.json文件

Vscode 中launch.json与tasks.json文件 launch.json文件基本结构主要属性示例配置PythonCNode.js 常见配置项1. Python2. C3. Node.js 使用示例 tasks.json基本结构主要属性示例配置C 编译任务Python 运行任务Node.js 运行任务 常见配置项使用示例 tasks.json与launch.json文件…

QueryWrapper<User> queryWrapper = new QueryWrapper<>();解释一下这是什么

QueryWrapper<User> queryWrapper new QueryWrapper<>(); 是 Java 代码的一部分&#xff0c;通常在使用 MyBatis-Plus 时会见到。MyBatis-Plus 是一个基于 MyBatis 的增强工具&#xff0c;可以简化对数据库的操作。 QueryWrapper: QueryWrapper 是 MyBatis-Plus…

Linux 时区文件编译器 zic【man 8 zic】

1. NAME&#xff08;名&#xff09; zic - 时区编译器 2. SYNOPSIS&#xff08;概要&#xff09; zic [-v] [-d directory] [-l localtime] [-p posixrules] [-L leapsecondfilename] [-s] [-y command] [filename ...]3. DESCRIPTION&#xff08;函数描述&#xff09; zic…

react学习——17react中todoList案列

1、项目目录 2、App.js //创建“外壳”组件APP import React, {Component} from "react"; //引入Header组件 import Header from "./components/Header"; //引入List组件 import List from "./components/List"; //引入Footer组件 import Foot…

人工智能:重塑世界的技术力量与深远影响

一、引言 在科技飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动社会进步的重要引擎。它不仅在科技领域引起了巨大的变革&#xff0c;更在经济、社会、文化等多个方面产生了深远的影响。本文旨在全面探讨人工智能的技术原理、应用领域、优势与挑战&a…

教学计划(拓扑排序)c++【做题记录】

【题目要求】 现在你总共有 N 门课需要选择&#xff0c;记为 0 到 N-1。 在选修某些课程之前需要一些先修课程。 例如&#xff0c;想要学习课程 0 &#xff0c;你需要先完成课程 1 &#xff0c;我们用一个匹配来表示他们&#xff0c;如: 0,1 给定课程总量&#xff0c;条件条数…

网页元素定位秘籍:从HTML探秘到Python自动化实战20240626

网页元素定位秘籍&#xff1a;从HTML探秘到Python自动化实战 引言&#xff1a; 在数字化时代&#xff0c;网页成为了我们获取信息、交流和娱乐的重要窗口。当我们浏览网页时&#xff0c;很少会去思考这背后复杂的编程和定位技术。然而&#xff0c;对于开发者、测试工程师或自…

计算机视觉全系列实战教程 (十四):图像金字塔(高斯金字塔、拉普拉斯金字塔)

1.图像金字塔 (1)下采样 从G0 -> G1、G2、G3 step01&#xff1a;对图像Gi进行高斯核卷积操作&#xff08;高斯滤波&#xff09;step02&#xff1a;删除所有的偶数行和列 void cv::pyrDown(cv::Mat &imSrc, //输入图像cv::Mat &imDst, //下采样后的输出图像cv::Si…

切线与切平面的可视化

切线与切平面的可视化 flyfish 切线的可视化 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation, PillowWriter# 定义一个简单的一元函数&#xff0c;例如 f(x) x^2 def func(x):return x**2# 计算函数的导数 def deriva…

SpringBoot使用AutoConfigure实现依赖库自动导入配置

我们知道导入配置有两种&#xff0c;一种是Value&#xff0c;一种是ConfigurationProperties&#xff0c;将对应的类标记为Component即可导入。但是被注解标识的类创建Bean有一个前提&#xff0c;只对启动类所在的包路径下的所有带有Component等注解的类才会创建Bean。如果我们…

运维团队如何应对专线监控与统一登录门户的挑战

随着企业IT环境的日益复杂和业务的不断拓展&#xff0c;专线监控和统一登录门户成为了运维团队面临的重要挑战。本文将结合运维行业的实际需求&#xff0c;探讨运维团队如何应对专线监控与统一登录门户的挑战&#xff0c;并分享一些实践经验和策略。 一、专线监控的挑战与应对…

银河麒麟高级服务器操作系统V10SP2(X86|ARM)docker-engine软件导致容器umask值为0027而不是0022处理方法

银河麒麟高级服务器操作系统V10SP2&#xff08;X86|ARM&#xff09;docker-engine软件导致容器umask值为0027而不是0022问题分析 一 系统环境二 问题原因2.1 欧拉官网给出的解释2.2 麒麟软件包的来源是沿用欧拉上游社区 三 本地测试四 问题解决4.1 方案一 添加--exec-opt nativ…

ONLYOFFICE 文档开发者版 8.1:API 更新

随着版本 8.1 新功能的发布&#xff0c;我们更新了编辑器、文档生成器和插件的 API&#xff0c;并添加了 Office API 板块。阅读下文了解详情。 ​ ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个功能强大的文档编辑器&#xff0c;支持处理文本文档、电子表格、演示文稿、可填写…

Profibus DP主站转Modbus模块连接马达保护器案例

一、概述 在工业自动化控制系统中&#xff0c;Profibus DP和Modbus是常见的通信协议&#xff0c;在同一现场还有可能遇到Modbus协议&#xff0c;ModbusTCP协议&#xff0c;Profinet协议&#xff0c;Profibus协议&#xff0c;Profibus DP协议&#xff0c;EtherCAT协议&#xff…