原文地址
本文介绍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'
and y.ldxxbh in (
#foreach($ldxxbh in $ldxxbhs)
#if($velocityCount == 1)
'$ldxxbh'
#else
,'$ldxxbh'
#end
#end
);
]]>
</property>
在sql语句中包含了foreach循环控制语句和循环控制变量velocityCount:
#foreach($ldxxbh in $ldxxbhs)
#if($velocityCount == 1)
'$ldxxbh'
#else
,'$ldxxbh'
#end
#end
其中的变量$ldxxbh 保存了每次迭代获取到的list元素的值,变量$ldxxbhs表示一个list集合,可以通过三种方式设置:bean的get方法,map对象,sqlparams对象;详情请参考文章《bbossgroups 持久层模板sql变量参数设置的三种方式》,本例采用map方式设定这个list类型变量$ldxxbhs。
下面我们看看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对象,然后完成循环控制语句的执行。
分享到:
相关推荐
2. **视图(View)**:视图层是用户界面,BBoss MVCDemo允许开发者使用JSP、FreeMarker、Velocity等模板引擎来创建动态页面。视图与控制器通过请求参数进行交互,展示由控制器处理后传递的数据。 3. **控制器...
2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
4. **动态SQL**:允许在运行时构建和执行SQL,增加了代码的灵活性。 5. **查询优化**:可能包含SQL查询优化,如自动添加索引、避免全表扫描等。 6. **数据迁移工具**:方便在不同数据库间进行数据迁移或同步。 ...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
**二、BBoss介绍** BBoss 是一个针对 Elasticsearch 的企业级开发框架,它提供了丰富的 Java API,使得开发者可以更简单地进行索引管理、查询构建、结果分析等操作。BBoss 还支持多版本兼容,方便应对 Elasticsearch...
8. `cglib-nodep-3.1.jar`:CGLIB是一个代码生成库,常用于Java代理和动态类生成,可能在BBoss Elasticsearch中用于创建Elasticsearch操作的动态代理类。 通过这些库的组合,BBoss Elasticsearch提供了一种高效且...
**bboss+es基本操作示例** 在Java开发中,Elasticsearch(ES)作为一种流行的分布式搜索引擎和数据分析工具,常用于大数据处理和实时分析。bboss(Business Basic Operation Support)框架则是针对Elasticsearch...
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...
BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...
3. **事务管理**:在TestTransaction.sql这个文件名中,我们可以推测BBoss Persistent也包含了事务管理功能。在处理CLOB和BLOB数据时,事务是至关重要的,因为它们确保了数据的一致性和完整性。如果在操作过程中发生...
官方版本,亲测可用
在存储服务方面,采用Redis相较于Mongodb在性能上表现更优,但Redis作为非真正的Nosql数据库,其提供的监控统计功能相对薄弱。在实际生产环境中,bbosssession的表现良好,并能够快速响应各种会话管理需求。 四、...
本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java源文件、85个XML配置文件、52个HTML文件、39个properties和prefs文件、23个GIF图片、18个Gradle文件、17个gitignore文件、10个...
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637