• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

提示 API(Hint API)


一、指定数据源 DsHint

(一)概述

在 Oinone 开发环境中,DsHintApi用于强制指定数据查询时所使用的数据源。在实际业务场景中,存在复杂SQL的情况,具体表现为:

  • 单表单SQL满足不了的情况下
  • 有复杂的Join关系或者子查询
  • 复杂SQL的逻辑通过程序逻辑难以实现或实现代价较大

通过原生的mybatis/mybatis-plus, 自定义Mapper的方式实现业务功能,这个时候就可以用DsHintApi来结合使用

(二)API 定义

public static DsHintApi model(String model) {
    // 具体实现
}

public DsHintApi(Object dsKey) {
    // 具体实现
}
  • model(String model):通过传入模型编码来指定数据源。模型编码作为数据源选择的依据,方便开发者根据业务模型关联到对应的数据源。
  • DsHintApi(Object dsKey):直接传入数据源名称来指定数据源。这种方式更为直观,适用于明确知道数据源名称的场景。

(三)使用示例

1、注意事项

在代码中务必使用try - with - resources语法来使用DsHintApi。若不使用该语法,可能会导致数据源错乱等问题,影响数据查询的准确性和系统的稳定性。

2、DsHintApi 使用示例

在try块内,所有查询操作都会强制使用指定的数据源。

  • 使用方式 1:通过模型编码指定数据源
try (DsHintApi dsHintApi = DsHintApi.model(PetItem.MODEL_MODEL)) {
    List<PetItem> items = demoItemDAO.customSqlDemoItem();
    PetShopProxy data2 = data.queryById();
    data2.fieldQuery(PetShopProxy::getPetTalents);
}

在上述示例中,DsHintApi.model(PetItem.MODEL_MODEL)根据PetItem的模型编码指定了数据源,确保try块内的所有查询都从该指定数据源获取数据。

  • 使用方式 2:通过数据源名称指定数据源
try (DsHintApi dsHintApi = DsHintApi.use("数据源名称")) {
    List<PetItem> items = demoItemDAO.customSqlDemoItem();
    PetShopProxy data2 = data.queryById();
    data2.fieldQuery(PetShopProxy::getPetTalents);
}

此示例中,DsHintApi.use("数据源名称")直接通过数据源名称指定了数据源,同样保证try块内的查询操作从该数据源获取数据。

二、指定批次数量 BatchSizeHint

(一)使用场景

在 Oinone 开发环境中,BatchSizeHintApi则用于强制指定查询的批量数量。在处理大量数据查询时,合理设置查询的批量数量可以优化性能,减少内存消耗和网络传输压力。比如在分页查询或批量数据处理场景中,根据数据量和系统资源情况,精确控制每次查询返回的数据量。

(二)API 定义

public static BatchSizeHintApi use(Integer batchSize) {
    // 具体实现
}

use(Integer batchSize):通过传入一个整数值来指定查询的批量数量。该整数值代表每次查询返回的数据量,特殊值-1表示不分页,一次性返回所有符合条件的数据。

(三)使用示例

1、注意事项

在代码中务必使用try - with - resources语法来使用DsHintApi和BatchSizeHintApi。若不使用该语法,可能会导致数据源错乱等问题,影响数据查询的准确性和系统的稳定性。

2、BatchSizeHintApi 使用示例

在try块内,所有查询操作都会按照指定的batchSize进行查询。

  • 指定不分页查询(batchSize = -1)
try (BatchSizeHintApi batchSizeHintApi = BatchSizeHintApi.use(-1)) {
    PetShopProxy data2 = data.queryById();
    data2.fieldQuery(PetShopProxy::getPetTalents);
}

上述示例中,BatchSizeHintApi.use(-1)表示在try块内的查询将不分页,一次性返回所有符合条件的数据。

编辑此页
最近更新:2026/1/15 04:02
上一页
元位指令 API(Meta Directive API)
下一页
消息中心 API(Message Hub API)
默认页脚
Copyright © 2026 Mr.Hope