使用JDBC连接数据库
导入
任何使用JDBC的程序都需要导入java.sql包:
import java.sql.*
加载驱动
在试图与数据库建立连接之前,首先需要加载驱动,加载驱动有两种方法:
在代码中,用Class.forName(“org.postgresql.Driver”)方法显示加载驱动;
在JVM启动时作为参数传递,比如:java -Djdbc.drivers=org.postgresql.Driver
连接数据库
URL格式
使用PostgreSQL JDBC驱动访问Vastbase E100 的URL格式如下:
jdbc:postgresql://host:port/database
jdbc:postgresql://host:port/
jdbc:postgresql://host/database
jdbc:postgresql://host/
jdbc:postgresql:/
URL中各参数的含义如下:
host
服务端的主机名,默认为localhost,如果要指定IPV6的地址,必须用方括号括起主机参数,例如:jdbc:postgresql://[::1]:5432/atlas.
port
服务端监听的端口,默认为5432.
database
数据库名称,默认连接的数据库是与用户同名的数据库。比如连接用户为atlasuser,如果不指定database参数,则默认连接到atlasuser这个数据库。
获取JDBC连接
使用DriverManager.getConnection()获取连接:
Connection connection = DriverManager.getConnection(url, username,password);
关闭JDBC连接
关闭连接时调用Connection的close()方法即可:
Connection connection = DriverManager.getConnection(url, username,password);
connection.close();
连接参数
名称 | 类型 | 定义 |
---|---|---|
user | String | 连接数据库的用户 |
password | String | 数据库用户的密码 |
sendBufferSize | int | 在连接流上设置SO_SNDBUF |
recvBufferSize | int | 在连接流上设置SO_RCVBUF |
tcpKeepAlive | boolean | 启用或禁用TCP keep-alive |
socketTimeout | int | socket读取操作的超时时间 |
ApplicationName | String | 指定正在使用连接的应用程序名称 |
currentSchema | String | 指定设置到search-path中的schema |
readOnly | boolean | 将连接设置为只读模式 |
db_compatibility | String | 兼容模式,默认值为postgresql,可设置有postgresql和oracle,设置为oracle时,使用ResultSetMetaData获取对象名时,对象名的字母将以大写返回,并且disableColumnSanitiser=fasle设置无效。注:当对象名是使用双引号引住的小写名称(没有大写字母),也会转换成全大写字母返回,因此使用此参数时需要注意对象名的大小写。
注意:仅Vastbase E100的JDBC驱动支持该参数,原生PostgreSQL的JDBC驱动不支持。 |