什么时候需要用到动态SQL查询

什么时候需要用到动态SQL查询

SELECT  DISTINCT u.id,
                 u.name,
                 u.sex,
                 u.tel,
                 u.email,
                 u.hiredate,
                 u.root,
                 u.status,
(SELECT GROUP_CONCAT(role_name separator ", ") FROM tb_role WHERE JSON_CONTAINS (U.role,CONVERT(id,CHAR))) AS roles
FROM tb_user u
JOIN tb_role r ON JSON_CONTAINS(u.role,CONVERT(id,CHAR))
LEFT JOIN tb_dept d on u.dept_id=d.id
WHERE 1=1
<if test="name!=null">
    AND u.name like "%${name}"
</if>
<if test="sex!=null">
    AND u.sex=#{sex}
    <if test="role!=null">
        AND r.role_name=#{role}
    </if>
    <if test="deptId!=null">
        AND d.id=#{deptId}
    </if>
    <if test="status!=null">
        AND u.status=#{status}
    </if>
    LIMIT #{start}, #{length}
</if>

做哪些查询处理的时候会用到if标签

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2023-12-25 09:42:35

同学你好,1、有时候需要根据不同的场景来操作不同的表或字段,这时候就可以利用动态SQL来动态构建表名和字段名,实现灵活性和扩展性。并动态查询通过使用参数化查询或者绑定变量的方式来构建动态SQL,可以有效防止SQL注入攻击,提升系统的安全性。

2、一般情况下,使用参数建议都使用上<if>进行非空判断。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java工程师 2024版
  • 参与学习       2020    人
  • 提交作业       1249    份
  • 解答问题       1202    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师