`

bbossgroups 持久层模板sql变量参数设置的三种方式

阅读更多
本文介绍bbossgroups 持久层模板sql变量参数设置的三种方式,切入正题。

概述
Map:所有的变量参数名和值以key/value的方式放入,如果值为null则以null方式替换变量
Bean:所有的变量参数和值以都与bean中对应的属性字段名和值相对应,如果值为null则以相应属性类型的sql类型的 null方式替换变量
SQLParams:所有的变量参数和值以都与SQLParams中对应的属性字段名和值相对应,参数的类型根据 SQLParams.addSQLParam("id", value, SQLParams.INT)方法的第三个参数来指定,如果值为null则以相应类型的sql类型的 null方式替换变量。

如果是insert,delete,update还可以使用List<Map>,List<Bean>,List<SQLParams>来完成批量处理操作(后台全部采用预编译批处理来完成批量数据处理,性能好),下面分别介绍上述三种方式的使用方法。
1.Map和List<Map>方式
Map方式:
 
                 Map datas = new HashMap();
		 datas.put("id", 139);
		 datas.put("fieldName", "updateWithMapParams139");				
		 executor.updateBean("updatesqltemplate", datas);	//更新记录

List<Map>方式:
 Map datas = new HashMap();
		 datas.put("id", 139);
		 datas.put("fieldName", "updateWithMapParams139");
		 List<Map> params_ = new ArrayList<Map>();
		 params_.add(datas);
		 datas = new HashMap();
		 datas.put("id", 140);
		 datas.put("fieldName", "updateWithMapParams140");
		 params_.add(datas);		
		 datas = new HashMap();
		 datas.put("id", 141);
		 datas.put("fieldName", "updateWithMapParams141");
		 params_.add(datas);		
		 executor.updateBeans("updatesqltemplate", params_);	//批量更新处理多个记录


2.Bean和List<Bean>方式
Bean方式:
ListBean bean = new ListBean();
		   bean.setId(139);
		 List<ListBean> result = executor.queryListBean(ListBean.class, "dynamicsqltemplateid", bean);
		
		  bean.setId(-1);
		 result = (List<ListBean>) executor.queryListBean(ListBean.class,"dynamicsqltemplateid", bean);
		 bean.setId(0);
		 result = (List<ListBean>) executor.queryListBean(ListBean.class,"dynamicsqltemplateid", bean);

List<Bean>方式:
ListBean bean = new ListBean();
		   bean.setId(139);
List<ListBean> params_ = new ArrayList<ListBean>();
params.add(bean );
		executor.updateBeans("updatesqltemplate", params_);//批量更新处理多个记录


3.SQLParams和List<SQLParams>方式
SQLParams方式:
 SQLParams params = new SQLParams();
		 params.addSQLParam("id", 139, SQLParams.INT);		
		 List<ListBean> result = executor.queryListBean(ListBean.class, "dynamicsqltemplateid", params);
		

List<SQLParams>方式:
SQLParams params = new SQLParams();
		 params.addSQLParam("id", 139, SQLParams.INT);
		 params.addSQLParam("fieldName", "duoduo139", SQLParams.STRING);
		 List<SQLParams> params_ = new ArrayList<SQLParams>(2);
		 params_.add(params);
		 params = new SQLParams();
		 params.addSQLParam("id", 140, SQLParams.INT);
		 params.addSQLParam("fieldName", "duoduo140", SQLParams.STRING);
		 params_.add(params);
		
		 params = new SQLParams();
		 params.addSQLParam("id", 141, SQLParams.INT);
		 
		 params.addSQLParam("fieldName", "duoduo141", SQLParams.STRING);
		 params_.add(params);
		 executor.updateBeans("updatesqltemplate", params_);//批量更新处理多个记录


补充说明-executor变量定义和相对应的sql配置文件
executor变量定义:
 ConfigSQLExecutor executor = = new ConfigSQLExecutor("com/frameworkset/sqlexecutor/sqlfile.xml");

sql配置文件:
<?xml version="1.0" encoding='gb2312'?>
<properties>
	<description>
<![CDATA[
	sql配置文件
	可以通过名称属性name配置默认sql,特定数据库的sql通过在
	名称后面加数据库类型后缀来区分,例如:
	sqltest
	sqltest-oracle
	sqltest-derby
	sqltest-mysql
	等等,本配置实例就演示了具体配置方法
 ]]>
	</description>
	<property name="sqltest"><![CDATA[select * from LISTBEAN]]>
	</property>
	<property name="sqltest-oracle"><![CDATA[select * from LISTBEAN]]>
	</property>
	<property name="sqltemplate"><![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]]]>
	</property>
	<property name="sqltemplate-oracle"><![CDATA[select FIELDNAME from LISTBEAN where FIELDNAME=#[fieldName]  ]]></property>
	<!-- 动态sql,如果FIELDNAME 不等于null,并且FIELDNAME不为""将FIELDNAME作为查询条件-->
	<property name="dynamicsqltemplate"><![CDATA[select *  from LISTBEAN  where 1=1 
					#if($fieldName && !$fieldName.equals("")) and FIELDNAME = #[fieldName] #end  ]]>
	</property>
	<!-- 动态sql,如果id 不等于-1,并且id不为0将id作为查询条件-->
	<property name="dynamicsqltemplateid"><![CDATA[select *  from LISTBEAN  where 1=1 
					#if($id != -1 && $id != 0) and id = #[id] #end  ]]>
	</property>
	<property name="updatesqltemplate"><![CDATA[update LISTBEAN  set FIELDNAME = #[fieldName] where id = #[id] ]]>
	</property>
	<property name="queryFieldWithSQLParams"><![CDATA[select count(1)  from LISTBEAN ]]>
	</property>
</properties>


三种方式就介绍到此,欢迎感兴趣的朋友深入探讨bbossgroups持久层框架的方方面面。

相关文档:
bbossgroups持久层框架动态sql语句配置和使用
分享到:
评论
2 楼 yin_bp 2015-01-09  
ljthinkpad 写道
我想问一下,有什么方法可以得到直接在数据库里执行的语句?

什么时候需要得到,如果是想看执行日志的话可以参考文档:
http://yin-bp.iteye.com/blog/1925173

如果是别的目的的话,比如报表,建议你们的报表不采用直接使用sql的方式,可以使用传对象集合的方式
1 楼 ljthinkpad 2015-01-09  
我想问一下,有什么方法可以得到直接在数据库里执行的语句?

相关推荐

    bbossgroups 开发系列文章之一 最佳实践

    数据库访问组件和SQL语句配置文件是数据层的关键。bbossgroups提供了一套便捷的数据访问组件,允许开发者方便地操作数据库。在配置文件中,可以设定数据库连接池、事务管理等,以实现高效的数据库操作。 DAO组件...

    bbossgroups 3.1SQLExecutor组件ap使用实例

    这个组件提供了一种高效的批处理和单条SQL执行的方式,它基于Apache License 2.0开源,允许开发者在遵守相应条款的情况下自由使用。 在上述代码示例中,可以看到SQLExecutor组件的基本用法。首先,导入了必要的库,...

    bbossgroups 3.1培训教程.ppt

    4. **2011年**:标签库与MVC框架融合,持久层API改进,增加了SQL配置管理和动态SQL功能;Mvc框架全面加强,包括数据绑定、页面跳转和异常处理机制。 ### 框架组成 bbossgroups 3.1主要由以下部分构成: 1. **AOP/...

    bbossgroups 3.0 培训教程

    1. **安装与配置**:如何下载并安装bbossgroups 3.0,以及配置相关的环境变量和启动参数。 2. **基本概念**:了解bbossgroups中的关键组件,如消息代理、消费者、生产者等,以及它们之间的交互方式。 3. **开发...

    Bbossgroups体系架构.ppt

    6. **持久层框架**:Bboss提供了持久层框架,简化了数据库操作,支持SQL动态生成和ORM映射,与各种主流数据库如MySQL、Oracle等良好兼容。 7. **分布式事件框架**:通过JGroups、Minetty、RMI、HTTP、JMS、...

    bbossgroups 3.0 发布,国内首款集

    近日,bbossgroups 3.0 正式发布,这款国内首款集AOP(面向切面编程)、MVC(模型-视图-控制器)、Persistent(持久化)、JSP Taglib(JSP 标签库)、分布式RPC服务及分布式事件框架于一体的J2EE开发框架,为开发者...

    2013年度中国优秀开源项目列表

    12. bboss:bbossgroups是首个集成AOP、MVC、持久层、JSP标签库、分布式RPC服务和序列化组件的JavaEE企业级开发框架。 13. BeeFramework:BeeFramework是iOS平台的快速开发框架,特点包括易学易用、组件丰富,提供...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    提供的压缩包文件"bbossgroups 框架培训教程.pptx"和"Bbossgroups演示文档.pptx"可能包含了更多关于bboss mvc框架的详细信息和使用示例,包括如何配置和使用JSONP等特性。建议查阅这些文档以获取更深入的理解。 总...

    基于Java和Shell的bboss session framework跨域集群节点会话共享与监控设计源码

    该框架包含222个文件,包括164个Java源文件、14个XML配置文件、6个Gradle构建文件、6个JAR包文件、6个属性文件等,旨在支持跨域应用集群节点的会话共享与监控,并提供示例站点http://session.bbossgroups.com/...

    java版地图源码-bboss-elasticsearch:最好的elasticsearch高级javarest客户端api-----bbos

    它以类似于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....

    bboss-elastic-tran:bboss 数据同步工具

    弹性Tran老板数据交换模块使用文档: : Bboss是一个很好的Elasticsearch Java Rest客户端。 它运行并访问像mybatis这样的... 首先将BBoss的maven依赖项添加到pom.xml中: &lt; dependency&gt; &lt; groupId&gt;com.bbossgroups.p

Global site tag (gtag.js) - Google Analytics