---
order: 4
navTitle: capabilities.json
---
# capabilities.json

`capabilities.json`文件描述了扩展数据库连接器的属性配置信息，如支持版本、字段类型、SQL模板等。

```json
{
	"inheritConnector": "JDBC",
	"matchDbVersion": ">=5.0.0",
	"matchJdbcURL": "jdbc:mysql:",
	"driver": "com.mysql.cj.jdbc.Driver",
	"serverScript": "script.action",
	"forbiddenSQLs": [...],
	"connectionProperties": {...},
	"dataTypes": {...},
	"functionTemplates": {...},
	"operatorTemplates": {...},
	"displayFormats": {...},
	"errorIdentifyConfs": [...],
	"sqlTemplates": {...},
	"supports": {...},
	"compitableVersions": {...}
}

```

## 配置项{#conf-items}

#### inheritConnector{#inheritconnector}

指定一个其他数据库连接器，当前连接器会继承指定连接器的配置，默认为JDBC。

- 此参数填写Connector的标识ID，一般配置为指定数据库名字，且大小写敏感。
- 若想继承特定版本的配置，可以用`@`字符对数据库连接器和版本进行分隔，如`MySql@8.0.0`。

#### matchDbVersion{#matchdbversion}

指定该数据库连接器所能兼容的数据库的版本。

- 兼容版本通常为一个范围，且遵循[semver规范](https://docs.npmjs.com/cli/v6/using-npm/semver)。
- 版本号必须为3位数字，常见示例如下：
  - `>=5.0.0` 表示兼容5.0.0及以后版本的数据库。
  - `5.0.0 - 5.7.0` 表示兼容5.0.0和5.7.0之间的版本。
  - `~5.6.0` 表示兼容5.6.x版本的数据库，包括5.6.0，5.6.2，但不包括5.7、6.0等以后版本的数据库。
  - `^5.6.0` 表示兼容5.x.x版本的数据库，包括5.6.0、5.7.0、5.8.0，单不包括6.0及以后的版本。

#### matchJdbcURL{#matchjdbcurl}

配置一个正则表达式或字符串，判断是否兼容某个jdbc的url。

- 正则表达式通常用斜线括起来，如`/^jdbc:mysql:.+$/`。
- 若没有用斜线括起来，会判断url是否以该字符串开头，如`jdbc:mysql:`。

#### driver{#driver}

数据库连接器默认驱动，若`package.json`中也配置了[driver](./package-json.md#driver)属性，以`package.json`中的配置为准。

#### script{#script}

指定一个当前扩展目录的脚本文件，用于通过脚本代码实现一些数据库底层相关的逻辑，如使用数据库本地的jdbc api去流式导入数据，想洗可参考[数据库连接器扩展指南](./succ-dbconnector.md)中的`DbConnectorScript`接口。

#### forbiddenSQLs{#forbiddensqls}

配置一个正则表达式，禁止用户使用此连接器执行一些修改当前连接状态的SQL。正则表达式通常用斜线括起来。

示例： `/^\s*USE\s/` 表示禁用mysql中的`USE xxx`语句。

#### connectionProperties{#connectionproperties}

定义java的jdbc连接时需要用的一些默认链接参数，配置可参考[package.json](./package-json.md#connectionproperties)。

#### dataTypes{#datatypes}

定义数据库支持什么字段类型，具体配置参考[字段类型配置](./dataTypes.md)。

#### functionTemplates{#functiontemplates}

配置 SuccApp 中表达式函数对应的数据库执行SQL，具体配置参考[表达式函数配置](./functionTemplates.md)。

#### operatorTemplates{#operatortemplates}

当数据库中的表达式操作符与 SuccApp 中的表达式操作符有差异时，需要将差异的内容配置在这里，默认为空。

#### displayFormats{#displayformats}

定义与 SuccApp 的显示格式相匹配的数据库的显示格式，具体配置可参考[SuccApp 显示格式配置](./displayFormats.md)。

#### errorIdentifyConfs{#erroridentifyconfs}

用于配置数据库异常信息的匹配规则，具体配置可参考[异常信息配置](./errorIdentifyConfs.md)。

#### sqlTemplates{#sqltemplates}

数据库连接器的支持的SQL模板，详细配置参考[SQL模板配置](./sqlTemplates/README.md)。

#### supports{#supports}

配置一些数据库特性以及SQL方言，详细配置参考[配置数据库特性](./supports.md)。

#### compitableVersions{#compitableversions}

配置默认版本外数据库的兼容属性，详细配置可参考[配置其他版本兼容性](./compitableVersions.md)。
