以非加密方式连接
JDBC以非加密方式连接数据库,首先要加载驱动,然后再创建数据库连接。因此本章节主要介绍加载驱动方式、创建数据库连接的接口、采用不同接口进行非加密连接。
加载驱动方式介绍
- 在代码中创建连接之前在任意位置隐含装载:
     Class.forName("com.huawei.gaussdb.jdbc.Driver");
- 在JVM启动时参数传递,jdbctest为测试用例程序的名称。
     java -Djdbc.drivers=com.huawei.gaussdb.jdbc.Driver jdbctest; 
 
 
    - 由于GaussDB在JDBC的使用上与PG的使用方法保持兼容,所以同时在同一进程内使用两个JDBC驱动的时候,可能会造成类名冲突。
- GaussDB JDBC驱动主要做了以下特性的增强:
       - 支持SHA256加密方式登录。
- 支持对接实现sf4j接口的第三方日志框架。
- 支持容灾切换。
 
创建数据库连接的接口介绍
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)。具体请参见采用接口三连接数据库。
| 参数 | 描述 | 
|---|---|
| url | gaussdbjdbc.jar数据库连接描述符。 host为服务器名称或IPv4时,格式如下: 
 host为IPv6时,格式如下: 
 
         说明: 
         
 | 
| info | 数据库连接属性。全量参数请参见连接参数参考。 | 
| user | 数据库用户名。 | 
| password | 数据库用户的密码。 | 
采用接口二连接数据库
使用DriverManager.getConnection(String url, String user, String password)接口创建数据库连接,命令如下:
- 导入java.sql.Connection和java.sql.DriverManager。
    
    java.sql.Connection是数据库连接接口,通过java.sql.DriverManager的 getConnection() 方法让应用程序连接到数据库。此外,用户需要根据实际的应用场景,再导入其他的接口和类,具体请参见JDBC接口参考。1 2 import java.sql.Connection; import java.sql.DriverManager; 
- 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。
    
    用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。String sourceURL = "jdbc:gaussdb://$ip:$port/database"; String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV");
- 加载驱动。
    
    - 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。
- 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。
      String driver = "com.huawei.gaussdb.jdbc.Driver"; Class.forName(driver); 
 
- 创建数据库连接。
    
    调用DriverManager.getConnection(String url, String user, String password),进行数据库连接。Connection conn = DriverManager.getConnection(sourceURL, userName, password); 
采用接口三连接数据库
使用DriverManager.getConnection(String url, Properties info)接口创建数据库连接,命令如下:
- 导入java.sql.Connection、java.sql.DriverManager、java.util.Properties。
    
    java.util.Properties的setProperty() 方法,用于设置Properties 对象的属性值。此外,用户需要根据实际的应用场景,再导入其他的接口和类,具体请参见JDBC接口参考。1 2 3 import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; 
- 指定数据库sourceURL($ip、$port、database需要用户自行修改)、用户名和密码。
    
    用户名和密码直接写到代码中有很大的安全风险,建议在环境变量中存放。String sourceURL = "jdbc:gaussdb://$ip:$port/database"; String userName = System.getenv("EXAMPLE_USERNAME_ENV"); String password = System.getenv("EXAMPLE_PASSWORD_ENV");
- 创建Properties 对象,并将userName和password设置为该对象的属性值。
    
    Properties info = new Properties(); info.setProperty("user", userName); info.setProperty("password", password);
- 加载驱动。
    
    - 在代码运行工具(如IDE)中添加gaussdbjdbc.jar包。
- 执行以下命令加载数据库驱动程序“com.huawei.gaussdb.jdbc.Driver”。
 String driver = "com.huawei.gaussdb.jdbc.Driver"; Class.forName(driver); 
- 创建数据库连接。
    
    调用DriverManager.getConnection(String url, Properties info),进行数据库连接。1Connection conn = DriverManager.getConnection(sourceURL, info); 
 
    