编程接口 ========== 因为OushuDB和PostgreSQL兼容,所以可以使用PostgreSQL的驱动和编程接口来访问OushuDB。 * `JDBC访问OushuDB `_ * `libpq访问OushuDB `_ * `ODBC访问OushuDB `_ JDBC例子 ---------- 下面给出一个简单的JDBC访问OushuDB的例子。 :: // OushuDBJDBC.java import 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 oushu_cluster_status"; 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(); } } } 编译运行上面的代码需要下面几步: * 安装JDK,并确认java和javac命令工作 * 拷贝上面的代码到 OushuDBJDBC.java,需要更改下面这行里面的OushuDB用户名和密码。 :: # 为了访问OushuDB,如果你还没有一个用户,你需要创建一个用户,并为其分配权限,而且修改pg_hba.conf让该用户可以连接数据库。可以参见如下连接: # - 创建用户:http://www.oushu.com/docs/oushudb/reference/SQL.html#create-user # - 分配权限:http://www.oushu.com/docs/oushudb/reference/SQL.html#grant # - 修改pg_hba.conf: https://www.postgresql.org/docs/8.2/static/auth-pg-hba-conf.html # 注意修改pg_hba.conf后master节点需要重新加载pg_hba.conf,可以使用命令:oushudb reload cluster -a conn = DriverManager.getConnection(url, "ChangLei", ""); 下载JDBC驱动: :: wget https://jdbc.postgresql.org/download/postgresql-9.4.1212.jar 编译 :: javac -cp ./postgresql-9.4.1212.jar OushuDBJDBC.java 运行OushuDBJDBC :: changlei:dev ChangLei$ java -cp ./postgresql-9.4.1212.jar 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