JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问接口,应用程序可基于它操作数据。openGauss库提供了对JDBC 4.0特性的支持,需要使用JDK1.8版本编译程序代码,不支持JDBC桥接ODBC方式。
在linux服务器端源代码目录下执行build.sh,获得驱动jar包postgresql.jar,包位置在源代码目录下。从发布包中获取, 包名为openGauss-xxxx-操作系统版本号-64bit-Jdbc.tar.gz。
官方说驱动包与PostgreSQL保持兼容,其中类名、类结构与PostgreSQL驱动完全一致,曾经运行于PostgreSQL的应用程序可以直接移植到当前系统使用。在创建数据库连接之前,先加载数据库驱动类,openGauss jdbc的驱动为“com.huawei.opengauss.jdbc.Driver”,其中url前缀为“jdbc:opengauss”。
在连接数据库之前先要添加连接数据库的主机地址添加到pg_hba.conf(此文件在安装目录下的datanode文件夹下)中,格式如下所示:
host all all 127.0.0.1/32 sha256
里面 sourceURL 需要根据实际情况替换掉用户名、密码、IP 、端口。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcConn {
public static void main(String[] args) {
getConnect();
}
public static Connection getConnect() {
String driver = "com.huawei.opengauss.jdbc.Driver";
String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test?user=myuser&password=myPassWord";
Properties info = new Properties();
Connection conn = null;
try {
Class.forName(driver);
} catch (Exception var9) {
var9.printStackTrace();
return null;
}
try {
conn = DriverManager.getConnection(sourceURL);
System.out.println("连接成功!");
return conn;
} catch (Exception var8) {
var8.printStackTrace();
return null;
}
}
}
DriverManager.getConnection(String url, String user, String password);
此方法需要将用户名和密码作为变量输入。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcConn {
public static void main(String[] args) {
getConnect();
}
public static Connection getConnect() {
String driver = "com.huawei.opengauss.jdbc.Driver";
String sourceURL = "jdbc:opengauss://127.0.0.1:8080/test";
String username="myuser";
String passwd="myPassWord";
Connection conn = null;
try {
Class.forName(driver);
} catch (Exception var9) {
var9.printStackTrace();
return null;
}
try {
conn = DriverManager.getConnection(sourceURL, username, passwd);
System.out.println("连接成功!");
return conn;
} catch (Exception var8) {
var8.printStackTrace();
return null;
}
}
}