Skip to content

Java客户端 帮助类说明

He, Jiehui edited this page Sep 6, 2016 · 2 revisions

简介

这里主要介绍了一些开发过程中可能会用到的帮助类。大部分是针对Dla框架里面用到的接口的实现。位于package: com.ctrip.platform.dal.dao.helper。

Code Gen生成的代码会直接或间接的用到这里的部分类。还有一部分没用到的类在使用恰当的情况下可以满足特殊需求。

帮助类按照DalRowMapper实现类,DalParser实现类,ResultMerger实现类和其他帮助类来分别说明。

DalRowMapper实现类

DalColumnMapRowMapper

实现DalRowMapper接口,在遍历查询结果集的时候把每一行返回为一个Map。在希望快速验证查询结果,又不想通过code gen生成正式的Entity class的时候很有用。

DalCustomRowMapper

与DalColumnMapRowMapper类似,唯一的不同是DalColumnMapRowMapper会自己找到所有列名,而这个类可以指定列名。两者用处也类似。对于不希望将返回的所有列都转化为Map里面的entry的时候可以选择。

DalDataMapper

提供一个静态方法将ResultSet里面指定的column转化为Integer类型。指定的cloumn可以为null,或者字符串,或者任意数字类型。对自定义DalRowMapper来处理定义的不规范的列时有用处。

DalObjectRowMapper

返回结果集里面的第一个列的值。但如果希望返回short类型,必须使用ShortRowMapper,因为缺省的getObject针对short类型的列有可能返回Integer。

ShortRowMapper

返回结果集中的short值的mapper

FixedValueRowMapper

忽略结果集里面的实际内容,只返回给定值的mapper实现。

DalDefaultJpaMapper

缺省的基于JPA的DalRowMapper实现,通过parse一个entity的注解来判断如何从结果集做ORM。

DalParser实现类

AbstractDalParser

部分实现DalParser接口的抽象类,提供一般情况下不变的数据部分的访问。为进一步实现数据库ORM行为提供一个可扩展的基类。

DalDefaultJpaParser

扩展与AbstractDalParser,缺省的基于JPA的parser实现,通过parse一个entity的注解来判断如何从结果集做ORM。

ResultMerger实现类

DalFirstResultMerger

从多个shard的结果集里面,排序后返回第一个。可以提供Comparator来决定排序方式。

DalListMerger

返回多个shard结果集的并集,可以提供Comparator来决定排序方式。

DalRangedResultMerger

返回多个shard结果集的并集的其中一段数据,可以提供Comparator来决定排序方式。

DalSingleResultMerger

合并多个shard结果集,检查是否最终只有一个结果,如果不是则报错。

MultipleResultMerger

配合MultipleSqlBuilder使用的,合并每个shard上的批量查询结果。

DalResultSetExtractor实现类

DalRowCallbackExtractor

使用DalRowCallback的DalResultSetExtractor实现。

DalRowMapperExtractor

使用DalRowMapper的DalResultSetExtractor实现。

DalScalarExtractor

实现scalar访问方式的DalResultSetExtractor实现。返回结果集第一行第一列的值。这是C#的一种访问方式,借鉴到Java里面。

DalSingleResultExtractor

返回结果集中第一行数据的DalResultSetExtractor实现。可以指定是否需要保证唯一性,如果指定唯一性,当结果集多于1行的时候会报错。

其他帮助类

DalShardingHelper

最关键的分库分表的帮助类。提供了分库分表所需要的帮助方法,被大量调用。

DefaultResultCallback

缺省的异步调用接口实现。提供了获取结果,查询状态和出错处理等等功能。

EntityManager

实现对符合JPA规范的Entity进行解析方面工作的帮助类。可以提供用来构造mapper和parser所需要的meta data

CommonUtil

提供一些简单的帮助方法。没什么用,未来会简化或去掉。

DalClientFactoryListener

配合web环境使用的servelet listener。支持数据库初始化和预热选项。集成文档里面有具体说明。

LoggerHelper

日志处理相关的帮助类。如果希望自己提供logger实现,可以考虑使用里面的相关方法来简化开发

Clone this wiki locally