`

bboss持久层行处理器使用介绍

阅读更多
bboss持久层行处理器使用介绍

1.概述
行处理主要用来提供灵活高效的查询结果处理方法,下面着重介绍一下三种主要行处理器:空行处理器、返回值行处理器以及字段行处理器。
1.1 空行处理器-灵活度最高的行处理器,结果集全部自行封装,框架干预少
com.frameworkset.common.poolman.handle.NullRowHandler
空行处理器适用于
1.2.返回值行处理器-框架负责返回数据集,记录字段转换为值对象自行处理
com.frameworkset.common.poolman.handle.RowHandler
1.3.字段行处理器-对单个字段进行行级处理,并将处理值发挥给调用程序,字段行处理器主要用来处理blob和clob大字段类型的单字段查询功能,消除不同的数据库对大字段处理的差异性
com.frameworkset.common.poolman.handle.FieldRowHandler


2.使用方法

2.1 空行处理器
map方式
public Map<String,String> getUserDeskMapMenus(DeskTopMenuBean bean)
	throws Exception {
		String sql = "SELECT menupath,subsystem,userid FROM TD_SM_DESKMENU WHERE userid=#[userid] and subsystem=#[subsystem]";
		final Map<String,String> datas = new HashMap<String,String>();
		SQLExecutor.queryBeanWithDBNameByNullRowHandler(new NullRowHandler(){

			@Override
			public void handleRow(Record origine) throws Exception
			{
				datas.put(origine.getString("menupath"), origine.getString("subsystem"));
				
				
			}}, dbname,sql , bean);
		return datas;
	}

list方式
final List<ListBean> lbs = new ArrayList<ListBean>();
SQLExecutor.queryWithDBNameByNullRowHandler(new NullRowHandler(){

			@Override
			public void handleRow(Record record) throws Exception {
				
				ListBean lb = new ListBean();
				lb.setId(record.getInt("id"));
				lb.setFieldName(record.getString("fieldName"));
				lbs.add(lb);
			}}, "mysql", "select * from LISTBEAN where id>?", 80);


直接操作ResultSet的空行处理器使用实例:
SQLExecutor.queryWithDBNameByNullRowHandler(
					new ResultSetNullRowHandler() {

						@Override
						public void handleRow(ResultSet rs) throws Exception {
Person person = (Person)super.buildValueObject(  rs,
    			Person.class);//进行o/r mapping绑定
							System.out.println("name = " + rs.getString("name"));
							System.out.println("id = " + rs.getInt("id"));

						}
					}, "test", "select * from person");

2.2 返回值行处理器
String sql = "select * from LISTBEAN where ID>?";
		List<ListBean> beans = (List<ListBean>) SQLExecutor.queryListByRowHandler(new RowHandler<ListBean>(){

			@Override
			public void handleRow(ListBean lb, Record record)
					throws Exception {
				System.out.println("queryListByRowHandler test Result**:"+record.getString("fieldName"));
				
				lb.setId(record.getInt("id"));
				lb.setFieldName(record.getString("fieldName"));
				
			}}, ListBean.class, sql, 80);


2.3 字段行处理器
字段行处理器实现从blob/clob中获取单个字段文件对象的处理,其他类似类型数据也可以使用FieldRowHandler,使用示例如下:
public File getDownloadClobFile(String fileid) throws Exception
	{
		try
		{
			return SQLExecutor.queryTField(
											File.class,
											new FieldRowHandler<File>() {

												@Override
												public File handleField(
														Record record)
														throws Exception
												{

													// 定义文件对象
													File f = new File("d:/",record.getString("filename"));
													// 如果文件已经存在则直接返回f
													if (f.exists())
														return f;
													// 将blob中的文件内容存储到文件中
													record.getFile("filecontent",f);
													return f;
												}
											},
											"select filename,filecontent from CLOBFILE where fileid=?",
											fileid);
		}
		catch (Exception e)
		{
			throw e;
		}
	}


几种常用的使用方法就介绍完了,同时我们还可以结合行处理器完成分页查询,这里就不多说,更进一步的内容请关注博客动态。
分享到:
评论

相关推荐

    bboss 插件工程,持久层hibernate/hibernate4插件

    bboss-plugins project.包含kafka、log4j、spring、dubbo、activemq、word转pdf、pdf转swf项目,持久层hibernate/hibernate4插件

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

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

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

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

    基于Java的bboss插件集设计源码,涵盖文档转换及持久层技术

    该项目为bboss插件集的Java设计源码,总计277个文件,涵盖163个Java源文件、22个XML配置文件、14个Gradle构建脚本、13个Git忽略规则、13个属性文件以及少量的JavaScript、HTML、CSS和Shell脚本,主要用于文档转换和...

    bboss mvcdemo 下载地址

    - 模型层详解:介绍如何定义模型类,以及如何与数据访问层交互,执行CRUD操作。 - 视图渲染:如何配置和使用不同的模板引擎,以及如何在视图中展示模型数据。 - AOP应用:示例展示如何定义切面,以及如何应用事务...

    bboss会话共享培训文档

    例如,在一个域下的多个子应用之间,使用bboss可以共享认证信息,用户登录其中一个应用后,无需再次登录即可访问其他应用。 文档中提到了会话共享需要解决的五大技术难题: 1. session数据序列化问题,即如何有效...

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

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

    企业级J2EE开源框架bboss

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

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

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

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

    **二、BBoss介绍** BBoss 是一个针对 Elasticsearch 的企业级开发框架,它提供了丰富的 Java API,使得开发者可以更简单地进行索引管理、查询构建、结果分析等操作。BBoss 还支持多版本兼容,方便应对 Elasticsearch...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

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

    bboss+es基本操作示例.zip

    在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

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

    BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...

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

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    基于bboss新版平台项目环境搭建和代码工具使用视频教程.rar

    "基于bboss新版平台项目环境搭建和代码工具使用视频教程"提供了一套详细的指导,旨在帮助开发者快速掌握bboss新版本平台的相关操作。bboss,全称为Business Basic Open Source,是一个开源的企业级开发框架,它为...

    J2EE企业级开源框架bboss v5.0.6.8

    bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...

Global site tag (gtag.js) - Google Analytics