创建数据库连接的接口介绍
JDBC提供了三种接口,用于创建数据库连接。url、info、user、password参数描述,请参见表1。
接口一:DriverManager.getConnection(String url)。该方式需要把数据库用户名、密码写在url中,有一定的安全风险,因此不推荐使用。
接口二:DriverManager.getConnection(String url, String user, String password)。具体请参见采用接口二连接数据库。
接口三:DriverManager.getConnection(String url, Properties info)。具体请参见采用接口三连接数据库。
表1 数据库连接参数
参数 |
描述 |
url |
opengaussjdbc.jar数据库连接描述符。格式如下:
- jdbc:opengauss:
- jdbc:opengauss:database
- jdbc:opengauss://host/database
- jdbc:opengauss://host:port/database
- jdbc:opengauss://host:port/database?param1=value1¶m2=value2
- jdbc:opengauss://host1:port1,host2:port2/database?param1=value1¶m2=value2
说明:
- 使用gsjdbc200.jar时,将“jdbc:opengauss”修改为“jdbc:gaussdb”
- database为要连接的数据库名称。数据库名称缺省则与用户名一致。
- host为数据库服务器名称或IP地址。
由于安全原因,数据库主节点禁止数据库内部其他节点无认证接入。如果要在数据库内部访问数据库主节点,请将JDBC程序部署在数据库主节点所在机器,host使用“127.0.0.1”。否则可能会出现“FATAL: Forbid remote connection with trust method!”错误。
建议业务系统单独部署在数据库外部,否则可能会影响数据库运行性能。
缺省情况下,连接服务器为localhost。
- port为数据库服务器端口。
缺省情况下,会尝试连接到5431端口的database。
- param为参数名称,即数据库连接属性。参数可以配置在url中,以“?”开始配置,使用“=”给参数赋值,使用“&”作为不同参数的间隔。
- value为参数值,即数据库连接属性值。
- 连接时需配置connectTimeout、socketTimeout,如果未配置,默认为0,即不会超时。在DN与客户端出现网络故障时,客户端一直未收到DN侧ACK确认报文,会启动超时重传机制,不断地进行重传。当重传次数达到默认的15次后才会报超时错误,会导致RTO时间很高。
- 建议使用JDBC标准接口建立连接时,确保url格式的合法性,不合法的url会导致连接失败,且报错信息中包含原始url字符串,可能造成敏感信息泄漏。
- url中不允许配置密码、凭证等敏感信息,建议通过Properties连接属性来设置敏感信息,参见采用接口三连接数据库。
|
info |
数据库连接属性。全量参数请参见连接参数参考。 |
user |
数据库用户。 |
password |
数据库用户的密码。 |