官网地址: https://www.summer-data.com
代码库地址:https://gitee.com/hahan2020/summer-data
ResultSet
Jdbc 中通过 ResultSet
读取数据的过程中数据是在线
的,说它在线
是因为它是游标
,通过游标可以读取数据。
当前java的主要开发场景是 web 环境,在线
读取数据的方式在 web 环境中显然是不使用和不需要的,所以summer-data
提供了两种数据读取方式。
目前只提供离线
读取数据的API,未来版本中会提供在线
读取数据的API。
数据抽取器和映射函数
抽取器负责读取每一条数据,注意只是读到并不真的去读内容。
映射函数负责真的去读每一条数据,并转换成指定类型的java对象。
抽取器和映射函数都是可扩展的,用户可以自定义抽取器和映射函数。当前的版本主要针对 web 场景实现的抽取器和映射函数,未来会实现基于 ETL 场景的抽取器和映射函数,主要的区别是一个离线
一个在线
。
数据类型
summer-data
在执行查询时能返回2种结构的数据Map<String, Object>
和Object
。
数据绑定
返回Map
类型数据,Map的key值由查询字段名决定。
返回Object
类型数据,summer-data
会根据 Object 类型中各属性名从 jdbc 结果集中匹配对应的字段进行绑定。如果属性名与字段名不完全相同,可以通过在属性上添加@ColumnTag
注解进行绑定。
数据分页
首先明确一个观点,查询数据究竟分不分页是在开发阶段就确定的,所以返回结果集类型要明确指出。
summer-data
提供pageFor***
的API专门用于分页查询,同时summer-data
提供了专门的类型用于存储分页数据。MapPage
存放Map类型的分页数据,ObjectPage
存放Object类型的分页数据,它们都是Page<T>
的子类。