测试环境
客户端系统: Windows 10
客户端软件: eclipse 2020-0 9
Server 操作系统: openEuler 20.03 64bit with ARM
Database 版本: openGauss 2.0.0
作者:酷哥
1. 客户端安装配置 JDK 11
DOS 窗口输入 “java -version” ,查看 JDK 版本,确认为 JDK1 1 版本。如果未安装 JDK ,请 从官方网站下载安装包并安装。
根据如下步骤配置系统环境变量:
a. 右键单击 “ 我的电脑 “ ,选择 “ 属性 “ 。
b. 在 “ 系统 “ 页面左侧导航栏单击 “ gaoji系统设置 “ 。
c. 在 “ 系统属性 “ 页面, “ gaoji “ 页签上单击 “ 环境变量 “ 。
d. 在 “ 环境变量 “ 页面上, “ 系统变量 “ 区域单击 “ 新建 “ 或 “ 编辑 “ 配置系统变量。变量说明请参 见表。
2. 下载 JDBC 驱动并解压
下载地址: https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/x86/openGauss-2.0.0-JDBC.tar.gz
3. 启动 eclipse ,新建工程并添加 JDBC 驱动
Create a java project
Project name: openGauss-JDBC; JRE: JavaSE-11
不需要创建“Don’t Create”
创建一个lib目录在openGauss-JDBC项目下
把jdbc驱动拷贝到lib下边
加载jdbc驱动
“Add JARs”
在“Libraries”下,选中需要的postgresql.jar文件,然后“Apply and Close”
Jdbc jar已经被正确加载,在“Referenced Libraries”下
创建“Java Class”
拷贝准备的代码到java类中
运行java类“Run as --》java application”
Tips: 此次使用 eclipse 2020-0 9 创建 JAVA Class
/*测试代码*/ package gaussjdbc; //ogtest.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 Gaussjdbc { //创建数据库连接。 public static Connection GetConnection(String username, String passwd) { String driver = "org.postgresql.Driver"; String sourceURL = "jdbc:postgresql://122.9.34.186:26000/db_tpcc"; 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("joe", "Bigdata@123"); //创建表。 CreateTable(conn); //批插数据。 BatchInsertData(conn); //执行预编译语句,更新数据。 ExecPreparedSQL(conn); //关闭数据库连接。 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
4. 测试示例代码
5. 检查运行结果
-- 检查客户端运行结果
-- 检查数据库数据变化
代码成功运行,且数据库数据变更正常,即连接环境配置完毕。