MyBatis(下)

简介: MyBatis(下)

1.前缀和忽略前缀用于查询数据库代码

//prefix前缀  prefixOverrides忽略前缀  
<select id="getlist" resultType="com.xinxi2.bean.TSysUser">
        SELECT * FROM `t_sys_user`
        <trim prefix="where" prefixOverrides="and|or">
            <if test="realname!=null">
                and realname=#{realname}
            </if>
            <if test="password!=null">
                and password=#{password}
            </if>
            <if test="acccunt!=null">
                and acccunt=#{acccunt}
            </if>
        </trim>
    </select>

2.后缀和忽略后缀用于修改数据库代码

//suffix后缀 suffixOverrides忽略后缀
<update id="update" parameterType="com.xinxi2.bean.TSysUser">
        update t_sys_user
            <trim suffix="set" suffixOverrides=",">
                <if test="realname!=null">
                    realname=#{realname},
                </if>
                <if test="password!=null">
                    password=#{password},
                </if>
                <if test="acccunt!=null">
                    acccunt=#{acccunt},
                </if>
            </trim>
        where id=#{id}
    </update>

where标签

where标签的主要作用是对SQL语句中的where关键字进行简化处理,并可以智能地处理其内部and、or等关键字

/*TSysUserMapper.xml*/
<select id="getlist" resultType="com.xinxi2.bean.TSysUser">
        SELECT * FROM `t_sys_user`
        <where>
            <if test="realname!=null">
               and realname=#{realname}
            </if>
            <if test="password!=null">
               and password=#{password}
            </if>
            <if test="acccunt!=null">
               and acccunt=#{acccunt}
            </if>
            <if test="id!=null">
                and id=#{id}
            </if>
        </where>
    </select>

set标签

MyBatis 提供了 set 元素,set 元素主要用于修改操作,它可以在动态 SQL 语句前输出一个 SET 关键字,并将 SQL 语句中最后一个多余的逗号去掉,set 元素与 if 元素结合可以实现只修改需要更新的字段

/*TSysUserMapper.xml*/
<update id="update" parameterType="com.xinxi2.bean.TSysUser">
        update t_sys_user
        <set>
            <if test="realname!=null">
                realname=#{realname},
            </if>
            <if test="password!=null">
                password=#{password},
            </if>
            <if test="acccunt!=null">
                acccunt=#{acccunt},
            </if>
        </set>
        where id=#{id}
    </update>

foreach标签

循环标签 适用于批量添加、删除 和查询记录

collection 必填,指定参数入参类型 列表(list) 、数组(array)、HashMap(map)
item 起名字,给集合中单个元素起名称
open 开始字符串
close 结束字符串
separator 分割符
index 索引的属性名,在集合数组下值为当前的索引值

1.foreach 元素迭代数组

//单参数List的类型
/*TSysUserMapper.xml*/
<select id="getlist" resultType="com.xinxi2.bean.TSysUser">
        SELECT * FROM `t_sys_user`
        <where>
            id in 
            <foreach collection="list" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </where>
    </select>

2.foreach 元素迭代 List

//数组类型的参数
/*TSysUserMapper.xml*/
<select id="getlist" resultType="com.xinxi2.bean.TSysUser">
        SELECT * FROM `t_sys_user`
        <where>
            id in 
            <foreach collection="array" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </where>
    </select>

3.foreach 元素迭代 Map

//Map类型参数
/*TSysUserMapper.xml*/
<select id="getlist" resultType="com.xinxi2.bean.TSysUser">
        SELECT * FROM `t_sys_user`
        <where>
            id in 
            <foreach collection="array" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </where>
    </select>


相关文章
|
前端开发 搜索推荐 API
【Prompt Engineering:ReAct 框架】
ReAct 框架由 Yao 等人(2022)提出,结合大语言模型(LLMs)生成推理轨迹与任务操作,交替进行推理与行动。此框架允许模型与外部环境(如知识库)互动,以动态更新操作计划并处理异常。ReAct 在语言和决策任务上表现优异,提升模型的人类可解释性和可信度。研究显示,ReAct 优于多个基准模型,尤其在结合链式思考时效果最佳。通过实例演示,ReAct 能有效整合内外部信息,优化推理过程。
678 9
【Prompt Engineering:ReAct 框架】
|
9月前
|
JavaScript 前端开发
jquery输入框键入文字动画特效
这是一款炫酷的jquery输入框键入文字动画特效。该文字特效在用户键入字母时,通过jquery代码来制作文字的动画效果,非常炫酷。
86 0
|
存储 弹性计算 Linux
阿里云服务器ECS收费常见问题汇总(帮助资料解答)
阿里云服务器实现计算资源的即开即用和弹性伸缩,就像日常生活中的水、电资源一样,可以方便快捷随时取用。您可以根据业务需求创建相应所需的 ECS 实例。随着业务和策略的变化,用户可以随时调整云服务器 ECS的数量和 CPU、内存、磁盘、带宽等配置,来适应多种业务需求,助力业务发展。 我们在使用 ECS 的过程中难免会遇到一些疑问,本文为您介绍阿里云服务器ECS收费常见问题及解答,以供参考。
1815 0
阿里云服务器ECS收费常见问题汇总(帮助资料解答)
|
机器学习/深度学习 人工智能 数据处理
Python海龟绘图:绘出最靓丽的景色
Python海龟绘图:绘出最靓丽的景色
399 0
|
Linux 开发工具 数据安全/隐私保护
【Linux】基础命令大全、实用快捷键 —— 掌握linux使用,一文足矣。
【Linux】基础命令大全、实用快捷键 —— 掌握linux使用,一文足矣。
359 2
|
存储 IDE KVM
不想用了PVE了怎么办?那就迁移到VMware呗!
不想用了PVE了怎么办?那就迁移到VMware呗!
|
设计模式 Java 程序员
java动态代理(JDK和cglib)
java动态代理(JDK和cglib)
72 0
|
存储 SQL Cloud Native
Bytebase加入阿里云PolarDB开源数据库社区
Bytebase签署阿里巴巴开源CLA(Contribution License Agreement, 贡献许可协议), 正式与阿里云PolarDB 开源数据库社区牵手。
452 0
Bytebase加入阿里云PolarDB开源数据库社区
|
缓存 负载均衡 Dubbo
|
项目管理 开发者
艾伟也谈项目管理,项目的故事
  这是关于一个项目的故事,与其它项目相比,既不非常复杂,也不是很简单: 一个应用程序与数据库以及其它两个系统通信。这在技术和架构角度都是主流,而在管理角度则是标准情况: 所有工作都应该在昨天完成,但还有很多没有完成的。
1276 0

热门文章

最新文章