---
order: 3
navTitle: package.json
---
# pacakge.json

`package.json`文件包含两部分信息：

- 扩展数据库连接器的基本信息，包含扩展名称、描述文字、版本、展示图片等。配置参考[连接器配置信息](#connector-information)。
- 扩展数据库连接器的默认im
- 配置，包括扩展数据库库名、数据库类别、jdbc连接模板等。

以下是扩展数据库连接器的模板配置：

```json
{
	"name": "succ-dbconnector-jdbc",
	"displayName": "Common JDBC",
	"version": "1.0.0",
	"icon": "icon.svg",
	"thumbnail": "thumbnail.jpg",
	"compatibilities": {
		"platform": "^5.0.0"
	},
	"categories": [
		"data"
	],
	"contributes": {
		"dbConnector": {
			"name": "JDBC",
			"dbKind": "TransactionalDB",
			"compatibilityLevel": "All",
			"displayOrder": 0,
			"jdbcConfigTemplate": {}
		}
	}
}
```

## 连接器配置信息{#connector-information}

### name{#name}

扩展名称，需要和`package.json`的上层目录名字相同。

### displayName{#displayname}

显示名称，一般与数据库名称保持一致。

### version{#version}

扩展数据库连接器版本，一般默认为1.0.0。

### icon{#icon}

新建数据源后，在数据库页面显示的缩略图，此参数一般配置缩略图的路径，如`succ-dbconnector-Mysql\icon.svg`。

### thumbnail{#thumbnail}

新建数据源对话框中的展示图片，此参数一般配置图片路径，如`succ-dbconnector-Mysql\thumbnail.jpg`

### platform{#platform}

SuccApp 平台的版本，通常为5.0.0。

### categories{#categories}

扩展类别，默认为`data`，表示为数据库连接器扩展。

### contributes{#contributes}

描述扩展数据库连接器的默认配置信息，具体可参考[dbConnector](#dbconnector)。

## dbConnector{#dbconnector}

### name{#dbConnector-name}

SuccApp 新建数据源时的名称，一般为扩展数据库的名称，如`MySql`。

### dbKind{#dbkind}

设置数据库在新建数据源对话框中显示的类别，主要类别如下所示

- `TransactionalDB`：事务型
- `AnalyticalDB`：分析型
- `HadoopDB`：Hadoop类
- `ColumnarDB`：列式
- `NoSQL`：NoSQL型
- `Cube`：多维数据集
- `Search`：检索服务
- `Other`：其他

:::tip 提示
`dbKind`内可以配置多个参数，参数间用`,`隔开。
:::

### compatibilityLevel{#compatibilitylevel}

数据库的兼容级别，此属性决定扩展数据库能使用系统中的哪些功能，默认为`ALL`。

主要类别如下所示：

- `ALL`：完全兼容
- `OLTP`：事务型，可以用于低代码应用、元数据存储、日志记录等使用场景。
- `OLAP`：分析型，可以作为报表或仪表板的数据源，也可以作为数据仓库使用。
- `OdsSource`：只查询，兼容级别最低的类型，通常只能进行数据库连接、查询等操作，无法进行提取加工。

### displayOrder{#displayOrder}

配置1-100的整数，决定扩展数据库在数据源对话框中的排列位置，数值越大排列位置就越靠前。

### capabilities{#capabilities}

指定一个扩展目录的文件，用于描述和配置数据库的功能、兼容性选项，默认为[capabilities.json](./capabilities-json.md)文件。

### jdbcConfigTemplate{#jdbcconfigtemplate}

新建数据库连接的默认配置，通常包括[jdbcurl](#url)、[schema](schema)、[port](#port)等。

示例如下所示：

```json
"jdbcConfigTemplate": {
				"schema": "testdb",
				"url": "jdbc:mysql://{host}/{databaseName}?useUnicode=true&characterEncoding=utf8&allowLoadLocalInfile=true&zeroDateTimeBehavior=convertToNull&useSSL=false",
				"port": 3306
			}
```

#### url{#url}

新建数据库连接时默认的jdbc连接，也可以在url中设置连接属性，若[connectionProperties](#connectionproperties)中配置了相同的连接属性，以此处的属性为准。

#### driver{#driver}

数据库连接器的默认驱动，如mysql的驱动为`com.mysql.cj.jdbc.Driver`，若`capabilities.json`中也配置了[driver](./capabilities-json.md#driver)属性，以此处的配置为准。

#### port{#port}

数据库的默认端口，如mysql的默认端口为`3306`。

#### schema{#schema}

连接数据库时的默认显示的schema。

#### poolSize{#poolsize}

数据库连接池的最大连接数，默认为20。

#### connectionProperties{#connectionproperties}

连接器建立JDBC连接时的默认连接属性，有些数据库的属性必须通过Properties进行设置，设置到[url](#url)中无效。可以设置一个字符串，并用`&`分割多个属性，也可以设置为json字符串。

示例如下：

```json
	"connectionProperties": {
		"connectTimeout": {
			"configProperty": "connectTimeout",
			"timeUnit": "ms",
			"inURL": true
		},
		"socketTimeout": {
			"configProperty": "socketTimeout",
			"timeUnit": "ms",
			"inURL": true
		}
	}
```

:::tip  提示
若有些属性在[url](#url)中已经设置，以url中的配置为准。
:::

##### defaultValue{#defaultvalue}

数据库的连接属性名，名字一般与[configProperty](#configproperty)内的参数相同。

##### configProperty{#configproperty}

设置该属性的值由哪个参数传递过来，常用的有`connectTimeout`、`socketTimeout`、`waitTime`，详细参数可参考[数据库连接器扩展指南](./succ-dbconnector.md)的`configProperty`属性。

##### timeUnit{#timeunit}

时间单位参数，可以为`ms`或者`s`，默认为`ms`。

##### inURL{#inurl}

是否将连接属性设置到jdbc的[url](#url)中，`ture`表示设置到url中，默认为`false`。
