![]()
因?yàn)镺ushuDB和PostgreSQL兼容,所以可以使用PostgreSQL的驅(qū)動(dòng)和編程接口來(lái)訪問OushuDB。
JDBC例子 下面給出一個(gè)簡(jiǎn)單的JDBC訪問OushuDB的例子。 // OushuDBJDBC.javaimport java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.DriverManager;import java.sql.ResultSetMetaData;public class OushuDBJDBC {public static Connection getConn() {Connection conn = null;try {Class.forName("org.postgresql.Driver");String url = "jdbc:postgresql://localhost:5432/postgres";try {conn = DriverManager.getConnection(url, "ChangLei", "");}catch (SQLException e) {e.printStackTrace();}}catch (ClassNotFoundException e) {e.printStackTrace();}return conn;}public static void main(String[] args) {Connection conn= getConn();String sql = "select * from gp_segment_configuration";try {Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(sql);ResultSetMetaData rsmd = rs.getMetaData();int numCol = rsmd.getColumnCount();for (int i = 0; i < numCol; i++) {System.out.print(rsmd.getColumnName(i + 1) + ' ');}System.out.println();while(rs.next()) {for (int i = 0; i < numCol; i++) {System.out.print(rs.getString(i + 1) + ' ');}System.out.println();}}catch (SQLException e) {e.printStackTrace();}}} 編譯運(yùn)行上面的代碼需要下面幾步:
# 為了訪問OushuDB,如果你還沒有一個(gè)用戶,你需要?jiǎng)?chuàng)建一個(gè)用戶,并為其分配權(quán)限,而且修改pg_hba.conf讓該用戶可以連接數(shù)據(jù)庫(kù)??梢詤⒁娙缦逻B接:# - 創(chuàng)建用戶:http://www./docs/hawq/reference/sql/create-user/# - 分配權(quán)限:http://www./docs/hawq/reference/sql/grant/# - 修改pg_hba.conf: https://www./docs/8.2/static/auth-pg-hba-conf.html# 注意修改pg_hba.conf后master節(jié)點(diǎn)需要重新加載pg_hba.conf,可以使用命令:hawq stop --reloadconn = DriverManager.getConnection(url, "ChangLei", ""); 下載JDBC驅(qū)動(dòng): wget https://jdbc./download/postgresql-9.4.1212.jar 編譯 javac -cp ./postgresql-9.4.1212.jar OushuDBJDBC.java 運(yùn)行OushuDBJDBC changlei:dev ChangLei$ java OushuDBJDBC registration_order role status port hostname address description 0 m u 5432 changlei changlei null 1 p u 40000 localhost 127.0.0.1 |
|
來(lái)自: 北漂二號(hào) > 《數(shù)據(jù)庫(kù)》