登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情~
代码拉取完成,页面将自动刷新
开源项目
>
数据库相关
>
数据库开发包
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
144
Star
1.5K
Fork
296
Troy
/
bean-searcher
代码
Issues
34
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
发行版
最新版
v4.8.7
aeaa8fd
2026-04-27 10:06
对比
v4.8.7
Troy
## 🌻 Better * 字段转换器 `FieldConvertor` 支持对父类中 **泛型字段** 进行转换(修复泛型擦除问题),例如: ```java // 父类 public class Base<ID> { // 泛型字段 private ID id; } // 子类 public class Entity extends Base<Long> { // ... } ``` > 以前版本的 BeanSearcher 虽然也可以对这样的 `Entity` 进行检索,但如果数据库返回的 `id` 字段不是子类期望的类型(例如 `Long`),则 BeanSearcher 也不会对它进行转换。 这虽然在检索阶段不会报错(JDK 泛型擦除),但如果再用某些第三方库(例如 JSON 库)对这种数据进行序列化,就可能会有兼容性问题。 * 同时发布 v4.8.7.jdk8 版本
最后提交信息为:
v4.8.7
v4.8.6
690fb36
2026-04-27 09:19
对比
v4.8.6
Troy
## 🌻 Better * 优化 `NumberParamConvertor` 中的异常信息,使用完整字段名提供更准确的错误提示 ## 🐛 Bug Fixes * 修复检索参数不合法时会抛出 `NPE` 的问题: ``` java.lang.NullPointerException: Cannot invoke "cn.zhxu.bs.SearchParam.getParaMap()" because the return value of "cn.zhxu.bs.SearchSql.getSearchParam()" is null at cn.zhxu.bs.implement.DefaultBeanSearcher.search(DefaultBeanSearcher.java:127) ``` ## 同时发布 v4.8.6.jdk8 版本
最后提交信息为:
CHANGELOG.md
v4.8.5
3724bcd
2026-03-27 19:51
对比
v4.8.5
Troy
## 🌻 Better * 优化 `FieldParam`,使其支持多线程只读共享使用 - `values` 字段改为 `final`,在构造时完成排序 - 返回的 `values` 列表为只读列表,可安全地在多线程环境中共享同一 `FieldParam` 实例 * 新增 `FieldParam.valueList()` 方法,替代 `getValueList()`(后者标记为 `@Deprecated`) ## 🌻 Deps * 将 Spring Boot 版本从 `3.5.8` 升级到 `3.5.9` * 将 Solon 版本从 `3.7.3` 升级到 `3.8.3` ## 同时发布 v4.8.5.jdk8 版本
最后提交信息为:
v4.8.5
v4.8.5.jdk8
caab642
2026-03-27 19:51
对比
v4.8.5.jdk8
Troy
## 🌻 Better * 优化 `FieldParam`,使其支持多线程只读共享使用 - `values` 字段改为 `final`,在构造时完成排序 - 返回的 `values` 列表为只读列表,可安全地在多线程环境中共享同一 `FieldParam` 实例 * 新增 `FieldParam.valueList()` 方法,替代 `getValueList()`(后者标记为 `@Deprecated`) ## 🌻 Deps * 将 Spring Boot 版本从 `2.7.18` 升级(依赖升级) * 将 Solon 版本从 `3.7.3` 升级到 `3.8.3` > JDK 8 兼容版本(兼容 JDK 8 ~ 16)
最后提交信息为:
refactor(FieldParam): 兼容 jdk8
v4.8.4
4ae52f4
2026-03-27 19:51
对比
v4.8.4
Troy
## 🐛 Bug Fixes * 修复 `MapBuilder` 的 `groupRoot()` 方法会报 `ConcurrentModificationException` 的问题 ## 同时发布 v4.8.4.jdk8 版本
最后提交信息为:
chore(deps): 更新Spring Boot和Solon依赖版本
v4.8.4.jdk8
fe2aa69
2026-03-27 19:51
对比
v4.8.4.jdk8
Troy
## 🐛 Bug Fixes * 修复 `MapBuilder` 的 `groupRoot()` 方法会报 `ConcurrentModificationException` 的问题 > JDK 8 兼容版本(兼容 JDK 8 ~ 16)
最后提交信息为:
refactor(util): 兼容 JDK8
v4.8.3
ebfe6f4
2026-03-27 19:51
对比
v4.8.3
Troy
## ✨ Features * 嵌入参数结束标志支持方括号检测 ## 🌻 Better * 将 Spring Boot 从 `3.3.13` 升级到 `3.5.8` * 将 Spring Framework 从 `6.1.21` 升级到 `6.2.15` * 将 Solon 从 `3.5.1` 升级到 `3.7.3` ## 🐛 Bug Fixes * 修复 `SqlServerDialect` 在用户未指定排序字段时的分页查询的生成的 SQL 不符合 SQL Server 语法要求的问题: - 第一页分页查询使用 `SELECT TOP` 语法 - 其它页查询自动添加 `ORDER BY (SELECT NULL)` 使 SQL 符合 `SQL Server` 语法 ## 同时发布 v4.8.3.jdk8 版本
最后提交信息为:
v4.8.3
v4.8.3.jdk8
92551c4
2026-03-27 19:51
对比
v4.8.3.jdk8
Troy
## ✨ Features * 嵌入参数结束标志支持方括号检测 ## 🐛 Bug Fixes * 修复 `SqlServerDialect` 在用户未指定排序字段时分页查询生成的 SQL 不符合 SQL Server 语法要求的问题 > JDK 8 兼容版本(兼容 JDK 8 ~ 16)
最后提交信息为:
Merge branch 'dev' into jdk-8
v4.8.2
06c43e3
2026-03-27 19:51
对比
v4.8.2
Troy
## 🐛 Bug Fixes(Bean Searcher Exporter) * 优化 `ExportField` 组件:当字段值为 `null` 时,返回空字符串 `""`,不调用格式化器 ## 同时发布 v4.8.2.jdk8 版本
最后提交信息为:
doc: CHANGELOG.md
v4.8.2.jdk8
fa0283a
2026-03-27 19:51
对比
v4.8.2.jdk8
Troy
## 🐛 Bug Fixes(Bean Searcher Exporter) * 优化 `ExportField` 组件:当字段值为 `null` 时,返回空字符串 `""`,不调用格式化器 > JDK 8 兼容版本(兼容 JDK 8 ~ 16)
最后提交信息为:
适配 JDK8 语法
v4.8.1
4139818
2025-12-18 11:51
对比
v4.8.1
Troy
## 🌻 Better(Bean Searcher) * 优化 `DefaultSnippetResolver` 组件 - 优化异常处理机制:当遇到不能处理的未知 SQL 语法时,抛出异常告诉用户哪段 SQL 不能解析 - 兼容 PgSQL 的 `||` 字符串连接符
最后提交信息为:
v4.8.1
v4.8.0
77a0c71
2025-12-18 11:26
对比
v4.8.0
Troy
## ✨ Features(Bean Searcher Exporter) * 注解 `Export` 新增 `onlyIf` 属性,用于定义字段导出条件,支持表达式语法 - 支持使用参数名引用检索参数(paraMap)中的值 - 在 Spring 环境下支持 SpEL 表达式语法 - 在 Solon 环境下支持 SnEL 表达式语法 * 组件 `ExportFieldResolver` 添加导出字段解析缓存机制 - 引入 `ConcurrentHashMap` 缓存导出字段解析结果,提高性能 - 新增 `clearCache` 方法可用于手动清理缓存 * JDK 版本要求:JDK 17+
最后提交信息为:
v4.8.0
v4.7.1
a029141
2025-12-15 14:43
对比
v4.7.1
Troy
## ✨ Features * 优化 `ParamAware`、`ResultFilter` 与 `SqlInterceptor` 的 `paraMap` 参数值:使用经过 `ParamFilter` 处理后的非空值 * JDK 版本要求:JDK 17+ ## 同时发布 v4.7.1.jdk8 版本
最后提交信息为:
doc: CHANGELOG.md
v4.7.0
c10c232
2025-12-15 14:42
对比
v4.7.0
Troy
## ✨ Features * Bean Searcher Exporter 的 `BeanExporter` 组件新增支持 `Function<List<T>, List<T>> mapper` 参数的系列导出方法,支持在写入导出文件之前,对查询出的整体数据做二次加工 - `export(String name, Class<T> beanClass, Function<List<T>, List<T>> mapper)` - `export(String name, Class<T> beanClass, int batchSize, Function<List<T>, List<T>> mapper)` - `export(String name, Class<T> beanClass, Map<String, Object> paraMap, Function<List<T>, List<T>> mapper)` - `export(String name, Class<T> beanClass, Map<String, Object> paraMap, int batchSize, Function<List<T>, List<T>> mapper)` - `export(FileWriter writer, Class<T> beanClass, Function<List<T>, List<T>> mapper)` - `export(FileWriter writer, Class<T> beanClass, int batchSize, Function<List<T>, List<T>> mapper)` - `export(FileWriter writer, Class<T> beanClass, Map<String, Object> paraMap, Function<List<T>, List<T>> mapper)` - `export(FileWriter writer, Class<T> beanClass, Map<String, Object> paraMap, int batchSize, Function<List<T>, List<T>> mapper)` * JDK 版本要求:JDK 17+
最后提交信息为:
v4.7.0
v4.6.0
edb5e9c
2025-12-08 17:19
对比
v4.6.0
Troy
## ✨ Features * Bean Searcher - 方言 `Dialect` 接口新增 `allowBoolLiterals(): boolean` 方法定义,用于指示数据库是否支持布尔字面量 - 新增 `DialectSqlInterceptor` 组件,用于当数据库不支持布尔字面量时,将用户 SQL 中的布尔字面量自动转换为 `1` 和 `0` - 新增 `DaMengDialect` 方言实现,用于兼容达梦数据库 - 新增 `StringFieldConvertor`, 可将 JDBC 返回的 `Clob`、`Number`、`Boolean` 与 `Date` 类型的值转换为 `String`(可兼容达梦数据库对 `TEXT` 类型字段返回 `Clob` 的情况) * Bean Searcher Boot Starter - 新增 `bean-searcher.field-convertor.use-string` 配置项,可是否启动 `StringFieldConvertor`, 默认为 `true` * Bean Searcher Solon Plugin - 新增 `bean-searcher.field-convertor.use-string` 配置项,可是否启动 `StringFieldConvertor`, 默认为 `true` * JDK 版本要求:JDK 17+ ## 同时发布 v4.6.0.jdk8 版本
最后提交信息为:
doc: CHANGELOG.md
v4.5.2
2192bc1
2025-12-08 16:17
对比
v4.5.2
Troy
## 🌻 Better * 优化 `EnumFieldConvertor`:以支持 short 与 byte 向枚举转换。此前只支持 String 与 int 类型。 * JDK 版本要求:JDK 17+ ## 同时发布 v4.5.2.jdk8 版本
最后提交信息为:
build(CHANGELOG.md): 更新 CHANGELOG.md 至 v4.4.3 版本
v4.5.1
fbcea26
2025-12-08 16:14
对比
v4.5.1
Troy
## 🌻 Better * 优化 `DefaultSqlExecutor`:如果 SQL 执行报错,则 SQL 日志级别从 `DEBUG` 提升为 `ERROR` * 优化 `DefaultSqlExecutor`:如果 JDBC 在 `prepareStatement` 阶段报错,也打印出报错的 SQL * JDK 版本要求:JDK 17+
最后提交信息为:
feat(bean-searcher): 当 SQL 执行报错时,打印 ERROR 级别的 SQL 日志
v4.5.0
ece894b
2025-12-08 16:12
对比
v4.5.0
Troy
## ✨ Features * Bean Searcher - 注解 `@SearchBean` 新增 `maxSize` 与 `maxOffset` 属性,可以为单个检索类设置独风控值,覆盖全局配置 - 接口 `PageExtractor` 接口中新增 `extract` 方法,支持传入 `BeanMeta` 参数 - 参数构建器新增 `groupRoot(String groupSeparator)` 方法,可将前端传来的普通参数组添加到根组内 - 参数构建器新增 `groupRoot()` 方法,使用默认的组分割符,将前端传来的普通参数组添加到根组内 * Bean Searcher Exporter(**首发**:数据文件导出模块) - 新增 `Export` 注解,用于标记需要导出的字段(支持表达式转换值) - 新增 `BeanExporter` 导出器,让数据导出与查询同样简单(支持**分页实时**导出,前端**立即响应**,且内置**并发控制**) - 新增 `FileWriter` 接口,用于扩展导出文件类型,默认实现 `CsvFileWriter` 可导出 CSV 文件 - 可自定义导出文件名装饰器 `FileNamer` - 可自定义数据批次加载延迟策略 `DelayPolicy`,默认采用随机放大延时策略 `DelayPolicy.RandomInflate` - 等等.. * Bean Searcher Boot Starter - 新增 `bean-searcher.exporter.batch-size` 配置项:指定数据导出时默认每批次查询的条数, 默认为 `1000` - 新增 `bean-searcher.exporter.batch-delay` 配置项:每批次查询后的初始延迟时间,默认 100毫秒,用于降低数据库压力, 默认为 `100ms` - 新增 `bean-searcher.exporter.max-exporting-threads` 配置项:最大同时导出的并发数,当同时导出操作的人达到这个值(默认 `10`)后,新导出的人会处于等待状态 - 新增 `bean-searcher.exporter.max-threads` 配置项:最大线程数,当同时导出操作的人太多(默认 `30`),将不再接受新的导出(新导出的人会收到稍后操作的提示,或抛出异常,具体行为可由 `FileWriter` 决定) - 新增 `bean-searcher.exporter.timestamp-filename` 配置项:导出的文件名是否自动拼上当前时间戳,默认 `true` - 新增 `bean-searcher.exporter.too-many-requests-message` 配置项:导出人数太多时返回的提示信息,默认是 "大人请息怒,当前导出数据的人实在太多了,请稍后再试一下子哈!" * Bean Searcher Solon Plugin - 新增 `bean-searcher.exporter.batch-size` 配置项:指定数据导出时默认每批次查询的条数, 默认为 `1000` - 新增 `bean-searcher.exporter.batch-delay` 配置项:每批次查询后的初始延迟时间,默认 100毫秒,用于降低数据库压力, 默认为 `100ms` - 新增 `bean-searcher.exporter.max-exporting-threads` 配置项:最大同时导出的并发数,当同时导出操作的人达到这个值(默认 `10`)后,新导出的人会处于等待状态 - 新增 `bean-searcher.exporter.max-threads` 配置项:最大线程数,当同时导出操作的人太多(默认 `30`),将不再接受新的导出(新导出的人会收到稍后操作的提示,或抛出异常,具体行为可由 `FileWriter` 决定) - 新增 `bean-searcher.exporter.timestamp-filename` 配置项:导出的文件名是否自动拼上当前时间戳,默认 `true` - 新增 `bean-searcher.exporter.too-many-requests-message` 配置项:导出人数太多时返回的提示信息,默认是 "大人请息怒,当前导出数据的人实在太多了,请稍后再试一下子哈!" * JDK 版本要求:JDK 17+ ## 同时发布 v4.5.0.jdk8 版本
最后提交信息为:
build:升级 xjsonkit 依赖版本 - 从 1.5.1 升级到 1.6.0
v4.4.3
6817c93
2025-12-08 16:09
对比
v4.4.3
Troy
## 🌻 Better * 优化 `EnumFieldConvertor`:以支持 short 与 byte 向枚举转换。此前只支持 String 与 int 类型。 * 优化 `DefaultSqlExecutor`:如果 SQL 执行报错,则 SQL 日志级别从 `DEBUG` 提升为 `ERROR` * 优化 `DefaultSqlExecutor`:如果 JDBC 在 `prepareStatement` 阶段报错,也打印出报错的 SQL
最后提交信息为:
v4.4.3
v4.4.2
8fc0bd9
2025-06-27 08:52
对比
v4.4.2
Troy
## ✨ Features * 增强 `MapUtils` 工具类 - 添加 `flat(Map<String, String[]> map, boolean urlDecode)` 方法,支持 指定知否进行 URL 解码 - 添加 `flatBuilder(Map<String, String[]> map, boolean urlDecode)` 支持 指定知否进行 URL 解码 - 原 `flat(Map<String, String[]> map)` 方法,默认进行 URL 解码 - 原 `flatBuilder(Map<String, String[]> map)` 方法,默认进行 URL 解码
最后提交信息为:
doc(bean-searcher): v4.4.2
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
Java
1
https://gitee.com/troyzhxu/bean-searcher.git
git@gitee.com:troyzhxu/bean-searcher.git
troyzhxu
bean-searcher
bean-searcher
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册