数据库配置信息样例
本章节主要介绍O2OA支持的各种不同的数据库的连接配置信息,供开发者参考。
平台默认内置H2数据,在正式环境中建议使用外部数据库.
外部数据库通过config/externalDataSources.json配置实现.
H2
H2为内置数据库,不需要进行配置.
在node.json配置的data中进行配置.
"data": { "enable": true, "tcpPort": 20050.0, "webPort": 20051.0, "includes": [], "excludes": [], "jmxEnable": false, "cacheSize": 512.0, "logLevel": "WARN" }
参数说明:
enable:是否启用,如果没有可用的externalDataSources.json文件,那么默认会在节点中启用本地的H2数据库作为默认的数据库.
tcpPort:H2数据库jdbc连接端口,登录的用户名:sa,密码为xadmin的密码.数据库创建
在/o2server/local/repository/data/X.mv.db,一旦数据库文件被创建,那么该数据库的密码被创建.
webPort:H2数据库web端口,H2提供一个web端的client,此端口为web端client的访问端口.用户名sa,密码为xadmin数据库初始创建的密码.
includes:设置此数据库存储的类,默认情况下存储所有类型,如果需要对每个类进行单独的控制以达到高性能,可以将不同的类存储到不同的节点上提高性能.可以使用通配符.
excludes:在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符.
jmxEnable:是否启动jmx,如果启用,可以通过本地的jmx客户端进行访问,不支持远程jmx客户端.
cacheSize:H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.
logLevel:默认日志级别
Mysql
支持MySQL5.7以上版本,建议使用MySQL8
1、数据库字符集请使用:utf8mb4
2、修改参数max_allowed_packet
set global max_allowed_packet = 1024*1024*1000
数据库连接字符串:
[ { "url":"jdbc:mysql://127.0.0.1:3306/X?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8", "username" : "root", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
Oracle
仅支持Oracle12c R2以上版本,不支持Oracle12.2以下版本(表名要支持30个以上的字符长度)
[ { "url":"jdbc:oracle:thin:@//127.0.0.1:1521/orcl", "username" : "X", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
DB2
支持DB2v10以上版本.
[ { "url" : "jdbc:db2://127.0.0.1:50000/X", "username" : "db2admin", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
DB2默认对查询长度有限制,查询的长度不能超过字段长度.由于数据会引起一下错误:
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001 在这样的情况下可以通过设置以下参数解决: DB2_DEFERRED_PREPARE_SEMANTICS=YES
SQLServer
支持SQL Server 2017 以上版本
[ { "url" : "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=X;selectMethod=cursor;sendStringParametersAsUnicode=false", "username" : "sa", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
PostgreSQL
[ { "url" : "jdbc:postgresql://localhost:5432/X", "username" : "postgres", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
Informix
[ { "url" : "jdbc:informix-sqli://123.45.67.89:1533/X:INFORMIXSERVER=informixServer", "username" : "admin", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
达梦数据库
[ { "url" : "jdbc:dm://127.0.0.1/X", "username" : "admin", "password" :"password", "includes": [], "excludes": [], "enable" : true } ]
人大金仓数据库
人大金仓数据库支持V7和V8两个版本,但两个版本的jdbc驱动不同.
V7
[ { "url" : "jdbc:kingbase://127.0.0.1:54321/X", "username" : "system", "password" :"krms", "includes": [], "excludes": [], "enable" : true } ]
V8
[ { "url" : "jdbc:kingbase8://127.0.0.1:54321/X", "username" : "system", "password" :"krms", "includes": [], "excludes": [], "enable" : true } ]