达梦数据库配置
驱动配置
达梦数据库的服务端版本和驱动版本需要匹配,建议使用服务端安装时提供的jdbc驱动,不要使用官方maven仓库中的驱动。
报错 表 xx 中不能同时包含聚集 KEY 和大字段,建表的时候就指定非聚集主键。
SELECT * FROM V$DM_INI WHERE PARA_NAME = 'PK_WITH_CLUSTER';
SP_SET_PARA_VALUE(1,'PK_WITH_CLUSTER',0)
Maven配置 DM8(目前maven仓库最新版本)
<dm.version>8.1.2.192</dm.version>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>${dm.version}</version>
</dependency>
PS: 8.1.3.12版本驱动需要手动上传到nexus仓库使用,本文包含该版本相关内容。
Maven配置 DM7
<dm7.version>7.6.1.120</dm7.version>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm7JdbcDriver18</artifactId>
<version>${dm7.version}</version>
</dependency>
PS: 7.6.1.120版本驱动需要手动上传到nexus仓库使用,本文包含该版本相关内容。
离线驱动下载
Dm7JdbcDriver18-7.6.1.120.jar
DmJdbcDriver18-8.1.3.12.jar
JDBC连接配置
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
连接url配置
点击查看官方文档:DM JDBC 编程指南
连接串1
jdbc:dm://127.0.0.1:5236?schema=BASE&clobAsString=true&columnNameUpperCase=false&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
PS:schema
参数在低版本驱动区分大小写,高版本驱动不再区分大小写,为了避免错误,统一使用全大写。columnNameUpperCase
参数与官方介绍不一致,为了避免错误,需要显式指定。
连接串2
jdbc:dm://127.0.0.1:5236/BASE?clobAsString=true&useUnicode=true&characterEncoding=utf8&compatibleMode=mysql
PS:可能是未来更高版本中使用的连接串形式。
达梦数据库在不同驱动版本下需要使用不同的连接串进行处理,具体可参考下表:
(使用错误的连接串将无法正常启动)
Dm7JdbcDriver18版本 | Build-Time | 使用的连接串类型 | 是否支持指定schema | schema是否区分大小写 | 是否可用 | 不可用原因 |
---|---|---|---|---|---|---|
7.6.0.165 | 2019.06.04 | 1 | 否 | 是 | 否 | 不支持LocalDateTime类型 |
7.6.1.120(建议) | 2022.09.14 | 1 | 是 | 是 | 是 | - |
DmJdbcDriver18版本 | Build-Time | 使用的连接串类型 | 是否支持指定schema | schema是否区分大小写 | 是否可用 | 不可用原因 |
---|---|---|---|---|---|---|
8.1.2.192 | 2023.01.12 | 1 | 是 | 否 | 是 | - |
8.1.3.12(建议) | 2023.04.17 | 2 | 是 | 否 | 是 | - |
方言配置
pamirs方言配置
pamirs:
dialect:
ds:
base:
type: DM
version: 8
majorVersion: 8
pamirs:
type: DM
version: 8
majorVersion: 8
数据库版本 | type | version | majorVersion |
---|---|---|---|
7-20220916 | DM | 7 | 20220916 |
8-20230418 | DM | 8 | 8 |
schedule方言配置
pamirs:
event:
schedule:
dialect:
type: DM
version: 8
majorVersion: 8
type | version | majorVersion |
---|---|---|
DM | 8 | 8 |
PS:由于schedule
的方言在多个版本中并无明显差异,目前仅提供一种方言配置。
其他配置
逻辑删除的值配置
pamirs:
mapper:
global:
table-info:
logic-delete-value: (CAST(SYSTIMESTAMP AS TIMESTAMP) - CAST(TIMESTAMP '1970-01-01 08:00:00' AS TIMESTAMP)) * 8640000000000
达梦数据库用户初始化及授权
-- 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';
Oinone社区 作者:nation原创文章,如若转载,请注明出处:https://doc.oinone.top/backend/48.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验