添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文介绍bboss 动态sql使用foreach循环示例。切入正题。
在sql配置文件中配置的sql语句有时需要用到foreach循环控制语句以及循环计数器velocityCount,以便遍历外部传入的list数据。在这里我们简单地介绍这个功能。
首先看看sql配置文件中配置的sql语句:
<property name="updateLkYjZt">
<![CDATA[
update dtjf.t_zt_zdry_cklkyjqbxx y set y.sjqszt = '5'
where y.yjlx='2'
#if($ldxxbhs && $ldxxbhs.size() > 0)
and y.ldxxbh in (
#foreach($ldxxbh in $ldxxbhs)
#if($velocityCount == 0),#end #[ldxxbhs[$velocityCount]]

#end
)
]]>
</property>

在sql语句中包含了foreach循环控制语句和循环控制变量velocityCount:
 #foreach($ldxxbh in $ldxxbhs)
#if($velocityCount == 0),#end #[ldxxbhs[$velocityCount]]
#end

其中的变量$ldxxbh 保存了每次迭代获取到的list元素的值,变量$ldxxbhs表示一个list集合,可以通过三种方式设置:bean的get方法,map对象,sqlparams对象;详情请参考文章《[url=http://yin-bp.iteye.com/blog/1173652]bbossgroups 持久层模板sql变量参数设置的三种方式[/url]》,本例采用map方式设定这个list类型变量$ldxxbhs。
需要注意的是,需要把resources/velocity.properties文件相关配置项按照以下配置配置:
[size=large][color=blue][b]directive.foreach.counter.name = velocityCount
directive.foreach.counter.initial.value = 0[/b][/color][/size]
directive.foreach.counter.name
用来定义foreach循环递增变量名称,通过velocity.properties文件中全局指定这个变量名称,默认为velocityCount,项目开发之初就要确定这个变量名称,后续不能更改。
directive.foreach.counter.initial.value
用来定义循环变量velocityCount(名称由directive.foreach.counter.name属性指定)的初始值,默认从1开始,项目开发之初应将其调整为0
下面我们看看java通过ConfigSQLExcutor对象executor来执行这个带foreach循环控制逻辑的sql语句代码:
public void updateLkYjZt(List<String> ldxxbhs) {
try {
Map datas = new HashMap();
datas.put("ldxxbhs",ldxxbhs);
executor.updateBean("updateLkYjZt", datas);

} catch (SQLException e) {
e.printStackTrace();
}
}

其中executor.updateBean("updateLkYjZt", datas)中的参数"updateLkYjZt"对应sql配置<property name="updateLkYjZt">中name属性的值,
Map对象datas中设置了key为“ldxxbhs”,值为list类型的变量ldxxbhs,foreach循环控制语句中通过key “ldxxbhs”来引用这个list对象,然后完成循环控制语句的执行。 本文介绍bboss 动态sql使用foreach循环示例。切入正题。在sql配置文件中配置的sql语句有时需要用到foreach循环控制语句以及循环计数器velocityCount,以便遍历外部传入的list数据。在这里我们简单地介绍这个功能。首先看看sql配置文件中配置的sql语句:[code=&quot;xml&quot;] 0) and y.ldxxbh in ( #fore...
文章目录ClientUtil加载配置文件中的dsl来实现对es的操作模式所有不依赖dsl的功能,或直接接收dsl模式基本功能配置es查询dsl文档批量创建或者修改http api查询dsl动态脚本语法规范配置springboot ClientUtil bbos s操作和访问elasticsearch提供两种模式,分别对应两个组件: RestClientUtil:通用组件,提供所有不依赖dsl的功...
<dependency> <groupId>com. bbos sgroups.plugins</groupId> <artifactId> bbos s-elasticsearch-rest-jdbc</artifactId> <version>5.9.9</version> <exclusions> <exclusion>
bbos s创建mapping的时候报错All elasticServer [http://39.104.163.56:9200] can’t been connected. 我添加文档是可以的 解决办法: 将elasticsearch.discoverHost设置为false 2.3 集群节点自动发现控制开关 集群节点自动发现控制开关,true开启,false关闭 elasticsearch.d...
&lt;select id="selectProvinceByStoreNumber" parameterType="java.util.List" resultType="cn.smb.web.store.model.StoreEntity"&gt; SELECT province, storeNumber store where st...
1. foreach 的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合 2.可以传递一个 List 实例或者数组作为参数对象传给 MyBatis。当你这么做的时候,MyBatis 会自动将它包装在一个 Map 中,用名称作为键。List 实例将会以“list”作为键,而数组实例将会以“array”作为键 3. foreach 的collection能够支持的三种集合类型list,arra...
Sybase过程中 动态SQL 使用 : --DROP PROCEDURE dbo.AUTO_ABM_TO_AAS CREATE PROCEDURE dbo.AUTO_ABM_TO_AAS(@L_MSG VARCHAR(255) OUTPUT) BEGIN ---复制分析表结构及内容 DECLARE @TABLE1 VARCHAR(64) --原表名 ...
文章目录Mybatis 映射文件的 SQL 深入1. if 标签1.1 if 标签的例子1.2 where 标签的 使用 1.3 foreach 1.3.1 需求1.3.2 foreach 标签的属性1.3.3 foreach 标签的例子1.4 SQL标签1.4.1 需求1.4.2 实例 Mybatis 映射文件的 SQL 深入 注:所有的代码的基础基于利用 dao 实现类来完成。 Mybatis 的映...
bbos s标签库list/map标签 循环 变量var属性 使用 说明 bbos s v4.10.2及以上版本为list、map两个标签增加几个定义el变量名称的属性,分别为: list标签新增以下属性,以便在el表达式中进行相关处理: var:指定存放 循环 迭代中当前对象变量名称属性 loopvar:指定存放 循环 索引变量名称属性 rowcountvar:指...
bbos s elasticsearch是一个不错的elasticsearch客户端工具包,采用类似于mybatis的方式, 使用 xml文件管理elasticsearch的query dsl脚本,在query dsl脚本中可以 使用 变量、 foreach 循环 、逻辑判断;配置文件支持在线修改、自动热加载,开发和调试非常方便。     脚本中变量定义语法有三种:#[xxx],$xxx,@{piandua...
ES bBos s 是一个基于 Elasticsearch 的数据管理工具,可以用于批量存储数据。具体操作步骤如下: 1. 在 ES bBos s 工具中创建索引,定义字段映射关系。 2. 准备待存储的数据文件,可以是 CSV、JSON、XML 等格式。 3. 在 ES bBos s 工具中选择要批量存储的数据文件,并指定索引名称和类型。 4. 点击“开始导入”按钮,ES bBos s 将自动读取数据文件,并将数据存储到 Elasticsearch 中。 需要注意的是,在存储数据之前,需要确保 Elasticsearch 服务已经启动,并且索引的映射关系已经正确定义。同时,也需要根据实际情况调整 ES bBos s 的配置参数,以便实现更高效的数据存储。