`
itfirefly
  • 浏览: 5003 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

bboss动态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>

分享到:
评论

相关推荐

    bboss mvcdemo 下载地址

    2. **视图(View)**:视图层是用户界面,BBoss MVCDemo允许开发者使用JSP、FreeMarker、Velocity等模板引擎来创建动态页面。视图与控制器通过请求参数进行交互,展示由控制器处理后传递的数据。 3. **控制器...

    企业级J2EE开源框架bboss

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

    bboss会话共享培训文档

    bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss-db-elasticsearch-tool-master_java_

    4. **动态SQL**:允许在运行时构建和执行SQL,增加了代码的灵活性。 5. **查询优化**:可能包含SQL查询优化,如自动添加索引、避免全表扫描等。 6. **数据迁移工具**:方便在不同数据库间进行数据迁移或同步。 ...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **三、环境搭建** 1. **Java环境**: 首先确保系统安装了 Java 运行环境(JRE)和 Java 开发工具(JDK),Elasticsearch 基于 Java,因此这是基础。 2. **下载Elasticsearch**: 从官网下载对应版本的 Elasticsearch ...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss elasticsearch-5.7.8.rar

    8. `cglib-nodep-3.1.jar`:CGLIB是一个代码生成库,常用于Java代理和动态类生成,可能在BBoss Elasticsearch中用于创建Elasticsearch操作的动态代理类。 通过这些库的组合,BBoss Elasticsearch提供了一种高效且...

    bboss+es基本操作示例.zip

    **bboss+es基本操作示例** 在Java开发中,Elasticsearch(ES)作为一种流行的分布式搜索引擎和数据分析工具,常用于大数据处理和实时分析。bboss(Business Basic Operation Support)框架则是针对Elasticsearch...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    3. **事务管理**:在TestTransaction.sql这个文件名中,我们可以推测BBoss Persistent也包含了事务管理功能。在处理CLOB和BLOB数据时,事务是至关重要的,因为它们确保了数据的一致性和完整性。如果在操作过程中发生...

    bboss ioc配置文件中使用外部属性文件介绍

    本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...

    bboss-soa.jar

    官方版本,亲测可用

    bboss会话共享培训文档分享

    在存储服务方面,采用Redis相较于Mongodb在性能上表现更优,但Redis作为非真正的Nosql数据库,其提供的监控统计功能相对薄弱。在实际生产环境中,bbosssession的表现良好,并能够快速响应各种会话管理需求。 四、...

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿.pptx

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿

    基于Java的bboss开源框架设计源码

    该项目是基于Java语言的bboss开源框架构建的设计源码,包含3075个文件,涵盖2700个Java源文件、85个XML配置文件、52个HTML文件、39个properties和prefs文件、23个GIF图片、18个Gradle文件、17个gitignore文件、10个...

    bboss mvc文件上传下载实战进阶

    NULL 博文链接:https://yin-bp.iteye.com/blog/1131637

Global site tag (gtag.js) - Google Analytics