Skip to content

全局配置

Kite ORM 框架提供了灵活的全局配置选项,允许开发者根据需要自定义框架的行为。这些配置主要集中在 com.tang.kite.config 包下的三个核心配置类中:KiteConfigPageConfigSqlConfig

KiteConfig

KiteConfig 是 Kite 框架的核心配置类,包含了框架的主要配置选项。

配置项说明

配置项类型默认值说明
bannerBooleantrue是否在应用启动时显示 Kite 框架的 banner
selectiveStrategyFunction1<Any?, Boolean>DefaultSelectiveStrategy.isSelective(it)选择性查询策略,用于确定哪些字段应该包含在 SQL 查询中
batchSizeInt1000批量操作(如插入或更新)的批量大小
dialectsMutableMap<DatabaseType, SqlDialect>DefaultSqlDialectFactory().getDialects()不同数据库类型对应的 SQL 方言映射
fillHandlersMutableMap<FillKey, FillHandler>包含 CreateTimeUpdateTime 对应的 TimeFillHandler填充注解的处理程序映射,用于处理 @CreateTime@UpdateTime 等注解
pagePageConfigPageConfig 对象分页相关配置,引用 PageConfig 对象
sqlSqlConfigSqlConfig 对象SQL 相关配置,引用 SqlConfig 对象

使用示例

java
// 修改批量操作大小
KiteConfig.setBatchSize(500);

// 关闭启动 banner
KiteConfig.setBanner(false);

// 自定义方法筛选策略
KiteConfig.setSelectiveStrategy(it -> it != null);

PageConfig

PageConfig 用于配置分页相关的默认参数。

配置项说明

配置项类型默认值说明
pageNumberLong1默认页码
pageSizeLong10默认每页记录数
pageNumberParameterStringpageNumber页码参数名,用于从请求中获取页码
pageSizeParameterStringpageSize每页大小参数名,用于从请求中获取每页记录数

使用示例

java
// 修改默认页码为 1
PageConfig.setPageNumber(1);

// 修改默认每页大小为 20
PageConfig.setPageSize(20);

// 修改页码参数名为 "page"
PageConfig.setPageNumberParameter("page");

// 修改每页大小参数名为 "size"
PageConfig.setPageSizeParameter("size");

SqlConfig

SqlConfig 用于配置 SQL 相关的参数和行为。

配置项说明

配置项类型默认值说明
sqlLowercaseBooleantrue生成的 SQL 是否使用小写
sqlLoggingBooleantrue是否记录生成的 SQL 语句
durationLoggingBooleantrue是否记录 SQL 执行时间
durationUnitDurationUnitDurationUnit.MILLISECONDSSQL 执行时间的单位
durationDecimalsInt0SQL 执行时间的小数位数
prepareLoggingBooleandurationLogging是否记录 SQL 准备时间
prepareUnitDurationUnitdurationUnitSQL 准备时间的单位
prepareDecimalsIntdurationDecimalsSQL 准备时间的小数位数
executionLoggingBooleandurationLogging是否记录 SQL 执行时间
executionUnitDurationUnitdurationUnitSQL 执行时间的单位
executionDecimalsIntdurationDecimalsSQL 执行时间的小数位数
mappingLoggingBooleandurationLogging是否记录 SQL 映射时间
mappingUnitDurationUnitdurationUnitSQL 映射时间的单位
mappingDecimalsIntdurationDecimalsSQL 映射时间的小数位数
elapsedLoggingBooleandurationLogging是否记录 SQL 总耗时
elapsedUnitDurationUnitdurationUnitSQL 总耗时的单位
elapsedDecimalsIntdurationDecimalsSQL 总耗时的小数位数

方法说明

方法名参数返回值说明
getSql(sql: StringBuilder)sql:SQL 字符串构建器String根据 sqlLowercase 配置格式化 SQL 字符串
getSql(sql: String)sql:SQL 字符串String根据 sqlLowercase 配置格式化 SQL 字符串

使用示例

java
// 关闭 SQL 日志
SqlConfig.setSqlLogging(false);

// 设置 SQL 执行时间单位为秒
SqlConfig.setDurationUnit(DurationUnit.SECONDS);

// 设置 SQL 执行时间小数位数为 2
SqlConfig.setDurationDecimals(2);

// 生成大写 SQL
SqlConfig.setSqlLowercase(false);

// 配置 SQL 准备时间日志
SqlConfig.setPrepareLogging(true);
SqlConfig.setPrepareUnit(DurationUnit.MILLISECONDS);
SqlConfig.setPrepareDecimals(2);

// 配置 SQL 执行时间日志
SqlConfig.setExecutionLogging(true);
SqlConfig.setExecutionUnit(DurationUnit.MILLISECONDS);
SqlConfig.setExecutionDecimals(2);

// 配置 SQL 映射时间日志
SqlConfig.setMappingLogging(true);
SqlConfig.setMappingUnit(DurationUnit.MILLISECONDS);
SqlConfig.setMappingDecimals(2);

// 配置 SQL 总耗时日志
SqlConfig.setElapsedLogging(true);
SqlConfig.setElapsedUnit(DurationUnit.MILLISECONDS);
SqlConfig.setElapsedDecimals(2);

基于 MIT 许可发布