I. Driver Configuration

The server version of Dameng database must match the driver version. It is strongly recommended to use the JDBC driver provided during the server installation, avoiding drivers from the official Maven repository.

When encountering an error "Table xx cannot contain both clustered KEY and large fields", specify a non-clustered primary key during table creation. Query configuration via SELECT * FROM V$DM_INI WHERE PARA_NAME = 'PK_WITH_CLUSTER'; and set parameters with SP_SET_PARA_VALUE (1,'PK_WITH_CLUSTER',0).

(Ⅰ) Maven Configuration for DM8 (Latest Version in Maven Repository)

xml
<dm.version>8.1.2.192</dm.version>
<dependency>
  <groupId>com.dameng</groupId>
  <artifactId>DmJdbcDriver18</artifactId>
  <version>${dm.version}</version>
</dependency>

Note:

The 8.1.3.12 driver version needs to be manually uploaded to the Nexus repository, and relevant content for this version is included in this document.

(Ⅱ) Maven Configuration for DM7

xml
<dm7.version>7.6.1.120</dm7.version>
<dependency>
  <groupId>com.dameng</groupId>
  <artifactId>Dm7JdbcDriver18</artifactId>
  <version>${dm7.version}</version>
</dependency>

Note:

The 7.6.1.120 driver version needs to be manually uploaded to the Nexus repository, and relevant content for this version is included in this document.

(Ⅲ) Offline Driver Download

Dm7JdbcDriver18-7.6.1.120.jarDmJdbcDriver18-8.1.3.12.jar

II. JDBC Connection Configuration

yaml
pamirs:
  datasource:
    base:
      type: com.alibaba.druid.pool.DruidDataSource
      driverClassName: dm.jdbc.driver.DmDriver
      # url: jdbc:dm://127.0.0.1:5236/BASE?clobAsString=true&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
      url: jdbc:dm://127.0.0.1:5236?schema=BASE&clobAsString=true&columnNameUpperCase=false&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
      username: xxxxxx
      password: xxxxxx
      initialSize: 5
      maxActive: 200
      minIdle: 5
      maxWait: 60000
      timeBetweenEvictionRunsMillis: 60000
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true
      asyncInit: true
      validConnectionCheckerClassName: com.alibaba.druid.pool.vendor.OracleValidConnectionChecker
      validationQuery: SELECT 1 FROM DUAL

Note: For more YAML configurations, refer to Module API.

(Ⅰ) Connection URL Configuration

Click to view the official document: DM JDBC Programming Guide

1. Connection String 1

yaml
jdbc:dm://127.0.0.1:5236?schema=BASE&clobAsString=true&columnNameUpperCase=false&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql

Note:

The schema parameter is case-sensitive in lower-version drivers and case-insensitive in higher-version drivers. To avoid errors, use all uppercase uniformly. The columnNameUpperCase parameter differs from official documentation, so explicit specification is required.

2. Connection String 2

yaml
jdbc:dm://127.0.0.1:5236/BASE?clobAsString=true&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql

Note:

This may be the connection string format for future higher versions.

Dameng database requires different connection strings for different driver versions, as shown in the table below: (Using incorrect connection strings will prevent normal startup)

Dm7JdbcDriver18 VersionBuild-TimeConnection String TypeSchema Specification SupportedSchema Case SensitivityAvailableReason for Unavailability
7.6.0.1652019.06.041NoYesNoDoes not support LocalDateTime type
7.6.1.120 (Recommended)2022.09.141YesYesYes-
DmJdbcDriver18 VersionBuild-TimeConnection String TypeSchema Specification SupportedSchema Case SensitivityAvailableReason for Unavailability
8.1.2.1922023.01.121YesNoYes-
8.1.3.12 (Recommended)2023.04.172YesNoYes-

III. Dialect Configuration

(Ⅰ) pamirs Dialect Configuration

yaml
pamirs:
  dialect:
    ds:
      base:
        type: DM
        version: 8
        majorVersion: 8
      pamirs:
        type: DM
        version: 8
        majorVersion: 8
Database VersiontypeversionmajorVersion
7-20220916DM720220916
8-20230418DM88

(Ⅱ) Schedule Dialect Configuration

yaml
pamirs:
  event:
    schedule:
      dialect:
        type: DM
        version: 8
        majorVersion: 8
typeversionmajorVersion
DM88

Note:

As there are no significant differences in the schedule dialect across multiple versions, only one dialect configuration is provided currently.

IV. Other Configurations

(Ⅰ) Logical Deletion Value Configuration

yaml
pamirs:
  mapper:
    global:
      table-info:
        logic-delete-value: (CAST(SYSTIMESTAMP AS TIMESTAMP) - CAST(TIMESTAMP '1970-01-01 08:00:00' AS TIMESTAMP)) * 8640000000000

(Ⅱ) Dameng Database User Initialization and Authorization

sql
-- init oinone role (role name can be modified by oneself)

CREATE ROLE OINONE;

GRANT CREATE SCHEMA,
      CREATE TABLE,
      CREATE INDEX,
      INSERT ANY TABLE,
      UPDATE ANY TABLE,
      select ANY TABLE,
      SELECT ANY VIEW
      TO OINONE;

SELECT * FROM DBA_ROLES;

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='OINONE';

-- init root user (user name can be modified by oneself)

CREATE TABLESPACE ROOT DATAFILE 'ROOT.DBF' SIZE 128;

CREATE USER "root" IDENTIFIED BY "shushi@2019";

ALTER USER "root" DEFAULT TABLESPACE ROOT DEFAULT INDEX TABLESPACE ROOT;

GRANT RESOURCE,OINONE TO ROOT;

select * FROM DBA_ROLE_PRIVS WHERE GRANTEE='ROOT';