在使用 JDBC(Java Database Connectivity)连接数据库时,连接 URL 中可以包含许多参数来配置连接的行为。下面是一些常见的 JDBC 连接参数及其说明,适用于 MySQL.
jdbc:mysql://[host]:[port]/[database_name]?[parameter1=value1¶meter2=value2&...]
主要连接参数:
-
user
:数据库用户名- 用于指定连接数据库的用户名。
- 示例:
user=root
-
password
:数据库密码- 用于指定连接数据库的密码。
- 示例:
password=yourpassword
-
serverTimezone
:设置服务器时区- 在一些 MySQL 版本中,可能需要指定时区以避免时区不匹配的错误。
- 示例:
serverTimezone=UTC
-
useSSL
:是否使用 SSL 连接- 设置为
false
可禁用 SSL 连接。 - 示例:
useSSL=false
- 设置为
-
autoReconnect
:自动重连- 如果连接丢失,是否自动重连。设置为
true
会尝试重新连接数据库。 - 示例:
autoReconnect=true
- 如果连接丢失,是否自动重连。设置为
-
maxReconnects
:最大重连次数- 如果启用自动重连,这个参数定义最大重连次数。
- 示例:
maxReconnects=3
-
useUnicode
:启用 Unicode 编码- 设置为
true
可以确保支持 Unicode 字符集(例如中文)。 - 示例:
useUnicode=true
- 设置为
-
characterEncoding
:字符编码- 设置字符编码,通常与
useUnicode=true
一起使用。常见编码有UTF-8
或GBK
。 - 示例:
characterEncoding=UTF-8
- 设置字符编码,通常与
-
allowMultiQueries
:允许在一个请求中执行多条 SQL 查询- 设置为
true
可以在同一连接中执行多个 SQL 语句。 - 示例:
allowMultiQueries=true
- 设置为
-
connectTimeout
:连接超时- 指定连接超时的时间(单位:毫秒)。如果连接 MySQL 服务器超时,会抛出异常。
- 示例:
connectTimeout=5000
(设置为 5 秒)
-
socketTimeout
:读取数据超时- 指定等待数据库响应的时间,单位是毫秒。
- 示例:
socketTimeout=10000
(设置为 10 秒)
-
failOverReadOnly
:故障转移时设置为只读- 在数据库发生故障切换时,设置为只读连接。
- 示例:
failOverReadOnly=false
-
zeroDateTimeBehavior
:零日期时间行为- 设置如何处理数据库中的零日期值(
0000-00-00
)。常见的设置有exception
或convertToNull
。 - 示例:
zeroDateTimeBehavior=convertToNull
- 设置如何处理数据库中的零日期值(
-
useCompression
:是否启用压缩- 启用后,JDBC 会使用压缩来减少网络带宽的消耗,适用于大数据量的传输。
- 示例:
useCompression=true
-
rewriteBatchedStatements
:优化批量更新- 设置为
true
后,JDBC 会重写批量更新语句以提高性能。 - 示例:
rewriteBatchedStatements=true
- 设置为