美文网首页
openGauss##使用JDBC连接数据库配置

openGauss##使用JDBC连接数据库配置

作者: upup果 | 来源:发表于2020-12-28 09:17 被阅读0次

    在测试数据库性能时,需要使用jdbc连接openGauss(本地)数据库,简单记录一下配置过程.我安装的centos是minimal版本,不支持安装ide,所有就是简单的用命令行编译运行.
    1.首先去openGauss官网下载好jdbc驱动,然后在本地安装好jdk.
    2.登录openGauus,创建新用户(如果已经有则忽略这一步),远程登录不允许使用omm用户.

    CREATE USER jack PASSWORD 'Test@123';  
    

    3.如果使用内存表,则需要授予新用户权限:

    grant usage on foreign server mot_server to jack;
    

    5.配置客户端接入认证,运行远程连接(这步要退出openGauss,在命令行执行)

    gs_guc set -N all -I all -h "host all jack 你的ip/32 sha256"
    

    4.编写测试程序(修改ip,端口,用户,密码)

    //DBtest.java
    //演示基于JDBC开发的主要步骤,会涉及创建数据库、创建表、插入数据等。
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.CallableStatement;
    
    public class DBTest {
    
      //创建数据库连接。
      public static Connection GetConnection(String username, String passwd) {
      String driver = "org.postgresql.Driver";
      String sourceURL = "jdbc:postgresql://ip:端口/postgres";
      Connection conn = null;
      try {
          //加载数据库驱动。
          Class.forName(driver).newInstance();
      } catch (Exception e) {
      e.printStackTrace();
      return null;
      }
    
      try {
        //创建数据库连接。
        conn = DriverManager.getConnection(sourceURL, username, passwd);
        System.out.println("Connection succeed!");
      } catch (Exception e) {
        e.printStackTrace();
        return null;
      }
    
      return conn;
    };
    
    //执行普通SQL语句,创建customer_t1表。
    public static void CreateTable(Connection conn) {
      Statement stmt = null;
      try {
        stmt = conn.createStatement();
    
        //执行普通SQL语句。
        int rc = stmt
            .executeUpdate("CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));");
    
      stmt.close();
    } catch (SQLException e) {
      if (stmt != null) {
        try {
          stmt.close();
        } catch (SQLException e1) {
          e1.printStackTrace();
        }
      }
      e.printStackTrace();
    }
    }
    
    //执行预处理语句,批量插入数据。
    public static void BatchInsertData(Connection conn) {
    PreparedStatement pst = null;
    
    try {
      //生成预处理语句。
      pst = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?,?)");
      for (int i = 0; i < 3; i++) {
        //添加参数。
        pst.setInt(1, i);
        pst.setString(2, "data " + i);
        pst.addBatch();
      }
      //执行批处理。
      pst.executeBatch();
      pst.close();
    } catch (SQLException e) {
      if (pst != null) {
        try {
          pst.close();
        } catch (SQLException e1) {
        e1.printStackTrace();
        }
      }
      e.printStackTrace();
    }
    }
    
    //执行预编译语句,更新数据。
    public static void ExecPreparedSQL(Connection conn) {
    PreparedStatement pstmt = null;
    try {
      pstmt = conn
          .prepareStatement("UPDATE customer_t1 SET c_customer_name = ? WHERE c_customer_sk = 1");
      pstmt.setString(1, "new Data");
      int rowcount = pstmt.executeUpdate();
      pstmt.close();
    } catch (SQLException e) {
      if (pstmt != null) {
        try {
          pstmt.close();
        } catch (SQLException e1) {
          e1.printStackTrace();
        }
      }
      e.printStackTrace();
    }
    }
    
    
    /**
     * 主程序,逐步调用各静态方法。
     * @param args
    */
    public static void main(String[] args) {
      //创建数据库连接。
    Connection conn = GetConnection("tester", "Password1234");
    
    //创建表。
    CreateTable(conn);
    
    //批插数据。
    BatchInsertData(conn);
    
    //执行预编译语句,更新数据。
    ExecPreparedSQL(conn);
    
    //关闭数据库连接。
    try {
      conn.close();
    } catch (SQLException e) {
      e.printStackTrace();
     }
    }
    }
    

    5.命令行编译,将jdbc驱动的jar包和DBTest.java放在同一个目录下,编译:

    javac -cp postgresql.jar DBTest.java
    

    6.运行

    java -cp .:postgresql.jar DBTest
    

    相关文章

      网友评论

          本文标题:openGauss##使用JDBC连接数据库配置

          本文链接:https://www.haomeiwen.com/subject/jvxonktx.html