- 浏览: 667402 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
动态sql配置文件内容:
动态sql语句中包含两种类型的变量:
#[service_requester_name] 这种变量将被转换成预编译绑定参数变量
$service_requester_code 这种变量直接被替换成相应的变量值
除了sql参数变量外,我们在sql中使用以下逻辑结构
根据传入的变量的值做相应的处理,从而在运行时动态生成sql语句,逻辑表达中使用变量的语法为$开头加变量名称:$service_requester_name。
判断变量是否为null的语法为:
逻辑表达式使用的Velocity模板引擎语法,非常灵活,我们可以在动态sql模板中使用几乎所有Velocity模板引擎的功能,具体使用方法可以参考Velocity模板引擎官网资料。
加载sql配置文件并定义ConfigSQLExecutor 组件:
只要确保com/chinacreator/tjbb/dao/impl/stxftj.xml文件存放在classpath环境中即可,一般是在classes目录下。
dao组件中执行动态sql并返回执行结果:
这里的dbName是在poolman.xml文件中配置的一个数据源。上文方法演示了如何通过ConfigSQLExecutor 组件读取动态sql实现分页查询的功能。至于数据源的配置请参考博文:
http://yin-bp.iteye.com/blog/1112892
需要额外说明的是怎么对like查询的值进行处理,如何添加%号,需要在dao方法中添加%号,否则不能正常查询出结果,我们配置的动态sql语句中有两个查询条件是
SERVICE_REQUESTER_NAME like #[service_requester_name]
和
SERVICE_REQUESTER_ACCOUNT like #[service_requester_account]
我们在dao方法中如此设置%号:
相关文档:
bbossgroups 持久层模板sql变量参数设置的三种方式
<?xml version="1.0" encoding="UTF-8"?> <properties> <property name="getRequesterDaoListInfo"> <![CDATA[ select r.*, o.ORG_NAME as service_requester_org_name from TD_ESB_REQUESTER r left join TD_SM_ORGANIZATION o on r.SERVICE_REQUESTER_ORG = o.ORG_ID where 1=1 #if($service_requester_code && !$service_requester_code.equals("")) and SERVICE_REQUESTER_CODE = #[service_requester_code] #end #if($service_requester_account && !$service_requester_account.equals("")) and SERVICE_REQUESTER_ACCOUNT like #[service_requester_account] #end #if($service_requester_name && !$service_requester_name.equals("")) and SERVICE_REQUESTER_NAME like #[service_requester_name] #end #if($service_requester_org && !$service_requester_org.equals("")) and SERVICE_REQUESTER_ORG = #[service_requester_org] #end order by create_time desc ]]> </property> </properties>
动态sql语句中包含两种类型的变量:
#[service_requester_name] 这种变量将被转换成预编译绑定参数变量
$service_requester_code 这种变量直接被替换成相应的变量值
除了sql参数变量外,我们在sql中使用以下逻辑结构
#if/#elseif/#end来动态生成sql语句,以下是一个简单的结构实例:
#if( $foo < 10 ) #elseif( $foo == 10 ) #elseif( $bar == 6 ) #else #end
根据传入的变量的值做相应的处理,从而在运行时动态生成sql语句,逻辑表达中使用变量的语法为$开头加变量名称:$service_requester_name。
判断变量是否为null的语法为:
#if($service_requester_name)
逻辑表达式使用的Velocity模板引擎语法,非常灵活,我们可以在动态sql模板中使用几乎所有Velocity模板引擎的功能,具体使用方法可以参考Velocity模板引擎官网资料。
加载sql配置文件并定义ConfigSQLExecutor 组件:
public static final String DBNAME = "stsmc"; private static ConfigSQLExecutor executor = new ConfigSQLExecutor("com/chinacreator/tjbb/dao/impl/stxftj.xml");
只要确保com/chinacreator/tjbb/dao/impl/stxftj.xml文件存放在classpath环境中即可,一般是在classes目录下。
dao组件中执行动态sql并返回执行结果:
package com.chinacreator.esb.uddi.requester.dao.impl; import com.chinacreator.esb.uddi.requester.dao.RequesterDao; import com.chinacreator.esb.uddi.requester.entity.Requester; import com.frameworkset.common.poolman.ConfigSQLExecutor; import com.frameworkset.util.ListInfo; public class RequesterDaoImpl implements RequesterDao { public static final String dbName= "stsmc"; private static ConfigSQLExecutor executor = new ConfigSQLExecutor("com/chinacreator/tjbb/dao/impl/stxftj.xml"); public ListInfo getRequesterDaoListInfo(String sortKey, boolean desc, long offset, int pagesize, Requester queryCondObj) throws Exception { // 还是分页查询哦 queryCondObj.setService_requester_name("%" + queryCondObj.getService_requester_name() + "%");//设定模糊查询条件值 queryCondObj.setService_requester_account("%" + queryCondObj.getService_requester_account() + "%");//设定模糊查询条件值 return executor.queryListInfoBeanWithDBName(Requester.class, dbName, "getRequesterDaoListInfo", offset, pagesize, queryCondObj); } }
这里的dbName是在poolman.xml文件中配置的一个数据源。上文方法演示了如何通过ConfigSQLExecutor 组件读取动态sql实现分页查询的功能。至于数据源的配置请参考博文:
http://yin-bp.iteye.com/blog/1112892
需要额外说明的是怎么对like查询的值进行处理,如何添加%号,需要在dao方法中添加%号,否则不能正常查询出结果,我们配置的动态sql语句中有两个查询条件是
SERVICE_REQUESTER_NAME like #[service_requester_name]
和
SERVICE_REQUESTER_ACCOUNT like #[service_requester_account]
我们在dao方法中如此设置%号:
queryCondObj.setService_requester_name("%" + queryCondObj.getService_requester_name() + "%");//设定模糊查询条件值 queryCondObj.setService_requester_account("%" + queryCondObj.getService_requester_account() + "%");//设定模糊查询条件值
相关文档:
bbossgroups 持久层模板sql变量参数设置的三种方式
发表评论
-
bboss 持久层数据源引用外部属性配置介绍
2018-12-29 21:47 979bboss 持久层数据源外部属性配置引用介绍 bboss持久 ... -
bboss持久层开启和关闭自带主键机制
2017-08-17 11:56 687bboss持久层开启和关闭自带主键机制 请访问文档: bbos ... -
bboss高性能db批处理功能使用方法介绍
2017-05-14 21:28 2052bboss持久层在v5.0.3.5中新增简单的高效的db批处理 ... -
bboss持久层公共sql片段定义和引用方法说明
2017-03-03 13:05 1056bboss持久层公共sql片段定义和引用方法说明 在配置sq ... -
最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法
2016-12-15 10:24 1267在使用最新的mysql-connector-java 6.0. ... -
持久层快速入门系列一
2016-08-19 13:00 1200持久层快速入门 先在应用中导入bboss 持久层(bboss ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 859首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss 持久层sql xml配置文件编写和加载方法介绍
2016-04-05 13:14 1527bboss 持久层sql xml配置文件编写和加载方法介绍 通 ... -
bboss持久层设置数据库查询fetchsize参数方法
2015-11-06 11:54 954bboss持久层设置数据库查询fetchsize参数方法 j ... -
bboss持久层快速入门教程
2015-09-19 13:49 1518bboss持久层快速入门教程,快速搭建bboss持久层的开 ... -
bboss持久层数据库适配器编写和注册方法
2015-02-06 15:21 918bboss持久层数据库适配器编写和注册方法 bboss持久层默 ... -
bboss模糊查询、动态sql、批处理资料荟萃
2015-01-30 12:03 2262bboss模糊查询、动态sql、批处理资料荟萃 bboss持 ... -
bboss持久层查询元数据缓存机制开启方法
2014-11-18 12:03 961bboss持久层为了提升数据库查询操作性能,提供了对查 ... -
bboss开发、模块工程目录结构及功能说明
2014-10-15 19:46 4705基于bboss开发项目说明 ... -
bboss内置数据源apache dbcp与druid数据源切换方法
2014-09-23 09:59 1318bboss内置数据源与druid数据源切换方法 bboss内置 ... -
bboss持久层多数据源配置及多数据库事务控制使用方法
2014-05-11 20:24 2842bboss持久层多数据源配置及使用方法,持久层框架及demo下 ... -
bboss持久层demo使用说明
2014-03-11 09:38 1118持久层案例可以用svn客户端下载eclipse工程,导入ecl ... -
bboss持久层More分页查询API使用介绍
2013-10-18 16:17 1313为了更好地提高数据库分页查询的效率,bboss持久层在Conf ... -
bboss持久层操作Clob和Blob字段示例
2013-09-09 13:29 1149bboss持久层操作Clob和Blob非常方便,基于bboss ... -
bboss持久层ormaping机制详解
2013-09-04 21:04 1084bboss持久层针对db操作即提供了原始sql语句的支持,又提 ...
相关推荐
bbossgroups 3.1SQLExecutor组件ap使用实例bbossgroups 3.1SQLExecutor组件ap使用实例
bbossgroups 开发系列文章之一 最佳实践bbossgroups 开发系列文章之一 最佳实践bbossgroups 开发系列文章之一 最佳实践
bbossgroups 3.1培训教程 bbossgroups 3.1即将发布,新增很多实用的功能,先发给培训教程上来:比如组件异步调用,mvc地址别名配置,sql配置管理,配置sql执行组件等等
Bbossgroups体系架构.ppt
bbossgroups 3.0 发布,这是国内首款集aop,mvc,persistent,jsp taglib,分布式rpc服务,分布式事件框架于一身的企业级j2ee开发框架 详细信息请看: http://www.javaeye.com/news/20177-bbossmvc-bbossaop
NULL 博文链接:https://yin-bp.iteye.com/blog/1004719
弹性Tran老板数据交换模块使用文档: : Bboss是一个很好的Elasticsearch Java Rest客户端。 它运行并访问像mybatis这样的elasticsearch来关联数据库。环境要求JDK要求:JDK 1.7+ Elasticsearch版本要求:1.X,2.X,5...
它以类似于mybatis的方式操作和访问elasticsearch。 环保要求 JDK 要求:JDK 1.7+ Elasticsearch 版本要求:1.X,2.X,5.X,6.X,7.x,+ Spring Booter 1.x,2.x,+ bbos 降 老板 弹性搜索 弹簧靴 全部 1.x 1.x,2.x 全部 2....