当前位置: 首页 > news >正文

做网站程序的都不关注seo百度关键词快速排名

做网站程序的都不关注seo,百度关键词快速排名,ubuntu安装 wordpress,城乡建设部网站首页上海目录 前言1. 基本语法2. Demo3. 实际例子 前言 对于Java专栏:Java专栏 对于Mybatis的相关知识可看我之前的文章:Mybatis从入门到精通(全) 对于其余Java框架可看我之前的文章:java框架 零基础从入门到精通的学习路线 附…

目录

  • 前言
  • 1. 基本语法
  • 2. Demo
  • 3. 实际例子

前言

对于Java专栏:Java专栏
对于Mybatis的相关知识可看我之前的文章:Mybatis从入门到精通(全)
对于其余Java框架可看我之前的文章:java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

对于上述Mybatis中曾有讲过foreach标签!此篇博客对其标签进行拓展

1. 基本语法

MyBatis中的<foreach>标签是用于迭代集合或数组的元素,生成对应的SQL片段,以便在动态SQL中使用。

该标签通常用于循环处理参数集合,生成多个相同的SQL片段,以实现批量操作或动态条件查询。

其基本的语法如下:

<foreach collection="collectionName" item="itemName" index="indexName" open="(" close=")" separator=",">#{itemName}
</foreach>

对应的属性如下:(只有collection和item是必选,其他都是可选参数)

  • collection: 指定要迭代的集合或数组的属性名,表示传入的参数的数据类型。
    该属性是必须指定的,用于指定要进行foreach操作的对象。
  • item: 指定在迭代过程中每个元素的别名,表示本次迭代获取的元素。
    若collection为List、Set或者数组,则表示其中的元素;
    若collection为map,则代表key-value的value。
    该参数是必选的。
  • index: 指定在迭代过程中每个元素的索引,仅对集合有效。
    在遍历List时,index表示元素的索引;在遍历Map时,index表示Map的key。该参数是可选的。
  • open: 指定迭代开始时的字符串,最常用的是左括弧'('
    MyBatis会将该字符拼接到整体的SQL语句之前,并且只拼接一次。该参数是可选的。
  • close: 指定迭代结束时的字符串,最常用的是右括弧')'
    MyBatis会将该字符拼接到整体的SQL语句之后。该参数是可选的。
  • separator: 指定每次迭代之间的分隔符。
    在SQL语句中,用于分隔不同元素的值。例如,1,2,3之间的,。该参数是可选的。

2. Demo

下面是一个简单的例子,假设有一个包含多个用户ID的集合,我们想要生成一个SQL语句查询这些用户:

<select id="selectUsersByIds" resultType="User">SELECT * FROM usersWHERE id IN<foreach collection="userIds" item="userId" open="(" close=")" separator=",">#{userId}</foreach>
</select>

在这个例子中,userIds是一个包含用户ID的集合,<foreach>标签会生成类似于IN (id1, id2, id3)的SQL片段。

另外,如果使用MyBatis的动态SQL功能,可以在<if>标签内使用<foreach>,以根据条件动态生成SQL片段,以下是一个例子,假设有一个条件查询的场景,根据用户选择的角色列表进行查询:

<select id="selectUsersByRoles" resultType="User">SELECT * FROM users<where><if test="roles != null and roles.size > 0">AND id IN<foreach collection="roles" item="role" open="(" close=")" separator=",">#{role}</foreach></if></where>
</select>

在这个例子中,selectUsersByRoles是一个动态SQL查询,它根据用户传入的roles参数动态生成SQL条件。

  • 如果roles不为空且包含元素,那么<if>标签内的内容会生效,生成类似于AND id IN (role1, role2, role3)的SQL片段。
  • 如果roles为空或不包含元素,该条件会被忽略,从而生成不包含AND的SQL语句。

在实际应用中,这种动态SQL的使用可以根据不同的业务需求动态构建查询条件,使SQL语句更加灵活和可复用。

3. 实际例子

结合实战中的例子,讲解更加透彻

  • 批量插入,即列表中有多个元素,代码示例:
<insert id="saveForList" parameterType="java.util.List">INSERT INTO E_DEVICE_TEMP_ALARM_HIST(DEVICE_NAME, BATTERY_TEMP, SEND_TO_DRIVER, CREATE_TIME, UPDATE_TIME, SENDER, SUGGESTION)<foreach collection="temperatureAlarmHistList" item="temperatureAlarmHist" separator="union all" open="(" close=")">SELECT#{temperatureAlarmHist.deviceName, jdbcType=VARCHAR},#{temperatureAlarmHist.batteryTemp, jdbcType=VARCHAR},#{temperatureAlarmHist.sendToDriver, jdbcType=INTEGER},#{temperatureAlarmHist.createTime, jdbcType=DATE},#{temperatureAlarmHist.updateTime, jdbcType=DATE},#{temperatureAlarmHist.sender, jdbcType=VARCHAR},#{temperatureAlarmHist.suggestion, jdbcType=VARCHAR}FROM DUAL</foreach>
</insert>
  • 动态SQL语句,更新语句也同理:
<update id="removeRuleDetailByRuleId"  >update equipment_change_shifts_rule_detail set is_deleted = 1 where rule_id IN<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">#{id}</foreach>
</update>
  • 结合if语句,且参数位置可以随意:
<select id="trees" resultMap="treeNodeResultMap">select id, parent_id, equipment_name as title, id as 'value', id as 'key',location from equipment_architecture where is_deleted = 0<if test="tenantId!=null">and tenant_id = #{tenantId}</if>and id in<foreach close=")" collection="ids" item="listItem" open="(" separator=",">#{listItem}</foreach>
</select>
http://www.hkea.cn/news/109619/

相关文章:

  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法