数据库配置范例

一 MySQL 配置范例

数据库配置(文件dbcp.properties)如下

 ########DBCP##########
 driverClassName=com.mysql.cj.jdbc.Driver
 #url
 url=jdbc:mysql://ip:3306/iidp?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
 username=root
 password=123456
 initialSize=5
 maxActive=30
 minIdle=5
 maxWait=6000
 filters=stat
 timeBetweenEvictionRunsMillis=60000
 minEvictableIdleTimeMillis=300000
 validationQuery=select 'x'
 testOnBorrow=false
 testOnReturn=false
 testWhileIdle=true
 poolPreparedStatements: true
 maxOpenPreparedStatements: 20

二 Oracle 配置范例

数据库配置(文件dbcp.properties)如下

 ########Oracle########
 driverClassName=oracle.jdbc.OracleDriver
 url=jdbc:oracle:thin:@ip:1521:SMOMDB
 username=root
 password=123456
 validationQuery=SELECT 'x' FROM DUAL

 initialSize=5
 maxActive=30
 minIdle=5
 maxWait=6000
 filters=stat
 timeBetweenEvictionRunsMillis=60000
 minEvictableIdleTimeMillis=300000
 validationQuery=select 'x'
 testOnBorrow=false
 testOnReturn=false
 testWhileIdle=true
 poolPreparedStatements: true
 maxOpenPreparedStatements: 20

三 PostgreSQL 配置范例

  1. DBCP 配置

    ########postgresql########
    driverClassName=org.postgresql.Driver
    url=jdbc:postgresql://xxx.xxx.120:5432/postgres?currentSchema=public&encoding=UTF-8&timezone=UTC
    username=postgres
    password=******
    
    initialSize=5
    maxActive=30
    minIdle=5
    maxWait=6000
    filters=stat
    timeBetweenEvictionRunsMillis=60000
    minEvictableIdleTimeMillis=300000
    validationQuery=select 'x'
    testOnBorrow=false
    testOnReturn=false
    testWhileIdle=true
    poolPreparedStatements: true
    maxOpenPreparedStatements: 20

四 OceanBase 配置范例

1. JDBC 连接配置调整

JDBC 连接示例

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:oceanbase://xxx.xxx.xxx.xxx:3306/test?rewriteBatchedStatements=TRUE&allowMultiQueries=TRUE&useLocalSessionState=TRUE&useUnicode=TRUE&characterEncoding=utf-8&socketTimeout=10000&connectTimeout=30000
username=root
password=******
  • allowMultiQueries:默认为 FALSE,必须设置为 TRUE,以允许使用分号连接的多语句文本格式。对使用文本协议的场景,只需开启此配置即可实现批量优化。
  • rewriteBatchedStatements:默认为 FALSE,若使用 PS 协议,则必须设置为 TRUE,以在执行 executeBatch() 时将多条语句改写为分号连接的多语句格式。

特例说明:开启 rewriteBatchedStatements 后,对于多条 multi queries 插入语句(无论使用文本协议或 PS 协议),JDBC 驱动会将其改写为一条 Multi Values Insert 语句。

相关参数说明

  • rewriteBatchedStatements:建议设置为 TRUE,以提高批量插入的性能。
  • allowMultiQueries:建议设置为 TRUE,允许使用分号连接的多语句文本格式。
  • useLocalSessionState:建议设置为 TRUE,避免频繁向 OB 数据库发送 session 变量查询 SQL。
  • socketTimeout:执行 SQL 时,socket 等待 SQL 返回的时间。
  • connectTimeout:建立连接时,等待连接的时间。
  • useCursorFetch:建议设置为 TRUE,适用于大数据量查询。
  • useServerPrepStms:控制是否使用 PS 协议发送 SQL。
  • cachePrepStmts:控制是否开启 PS cache,避免重复执行 prepare。
  • prepStmtCacheSQLLimit:可放入 PS cache 的 SQL 长度限制。
  • prepStmtCacheSize:PS cache 可保存的 SQL 数量。
  • maxBatchTotalParamsNum:针对 batch 操作,一条 SQL 最多支持的参数个数。

2. 本地 JDBC连接 OceanBase

dbcp.properties添加oceanbase配置

########OceanBase########
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://xxx.xxx.xxx.xxx:2881/snest?rewriteBatchedStatements=TRUE&allowMultiQueries=TRUE&useLocalSessionState=TRUE&useUnicode=TRUE&characterEncoding=utf-8&socketTimeout=10000&connectTimeout=30000&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
username=root
password=******
validationQuery=SELECT 1

五 GaussDB 配置范例

JDBC配置:

1. dbcp.properties 示例:

########DBCP##########
initialSize=5
maxActive=2000
minIdle=5
filters=stat
maxWait=6000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=1800000
testOnBorrow=false
testOnReturn=false
testWhileIdle=true
poolPreparedStatements: true
maxOpenPreparedStatements: 20
connectionProperties:druid.stat.sql.MaxSize=100;
keepAlive=true


########gaussdb########
driverClassName=com.huawei.gaussdb.jdbc.Driver
url=jdbc:gaussdb://127.0.0.1:8000,127.0.0.1:8000,127.0.0.1:8000/tpcc?currentSchema=snest_jichen&autoBalance=true&refreshCNIpListTime=3&prepareThreshold=1&batchMode=on&fetchsize=10&loggerLevel=OFF
username=******
password=******
validationQuery=SELECT 1
gaussdbDeployment=Distributed

2. spring配置文件添加参数适配高斯自定义SQL列字段别名转换

正常不需要添加这个配置,除非项目特殊需要.

application-dev.properties添加:

orm.sql.wrap_camelcase_alias=true

六 Vastbase(海量数据库) 配置范例

Vastbase 海量数据库基本上兼容Postgres SQL,所以SQL语法和Postgres一样,可以直接把Vastbase作为Postgres使用.

JDBC配置:

1 默认兼容模型

vastbase数据库访问

########DBCP##########
driverClassName=cn.com.vastbase.Driver
url=jdbc:vastbase://ip:25432/snest?currentSchema=snest_changwen
username=root
password=******


########snest_DBCP##########
driverClassName=org.postgresql.Driver/cn.com.vastbase.Driver
url=jdbc:vastbase://ip:25432/snest?currentSchema=snest_ziyang
username=root
password=******

2 MySQL兼容模型

vastbase数据库访问
数据库:snest_tpcc 	端口:25434		用户名:snest_changwen

########DBCP##########
driverClassName=cn.com.vastbase.Driver
url=jdbc:vastbase://ip:25434/snest_tpcc?currentSchema=snest_changwen&db_compatibility=mysql
username=root
password=******
dbCompatibility=mysql

七 Dameng(国产达梦数据库) 配置范例

配置数据库连接信息 在 dbcp.properties 配置连接信息如下:

########dameng##########
driverClassName=dm.jdbc.driver.DmDriver
url=jdbc:dm://ip:30236/IIDP_DEMO
username=SYSDBA
password=SYSDBA001