Java程序-OceanBase Connector/J 示例

环境:oceanbase 1-1-1集群,租户类型mysql

前提条件

1)确保计算机上的 Java 环境为 Java JDK 8 版本。

系统除了安装了 Java 运行环境(JRE),还要安装 Java 编译器(JDK)

yum install java-1.8.0-openjdk-devel -y

java -version

openjdk version "1.8.0_262"

OpenJDK Runtime Environment (build 1.8.0_262-b10)

OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

javac -version

javac 1.8.0_262

2)获取 OceanBase Connector/J 驱动程序。

步骤一:获取数据库连接参数

root@ocp \~\]# obclient -h192.192.103.125 -uroot@sys#test_cluster -P2883 -p -c -A Enter password: Welcome to the OceanBase. Commands end with ; or \\g. Your OceanBase connection id is 1358447 Server version: OceanBase_CE 4.2.4.0 (r100000082024070810-556a8f594436d32a23ee92289717913cf503184b) (Built Jul 8 2024 11:07:07) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement. obclient(root@sys)\[(none)\]\> 数据库连接参数包含了访问数据库所需的参数信息,在验证示例代码前,可通过数据库连接参数验证登录数据库,保证信息正确。 参数说明: -h:OceanBase OBProxy连接的IP。 -P:OceanBase OBProxy连接端口,默认端口是 2883。 -u:租户的连接账号。 -p:账号密码。 步骤二:安装 OceanBase Connector/J 驱动 根据下载的实际文件版本,将 OceanBase Connector/J 的 JAR 包解压后放入本地 /usr/share/java 路径中, $ mv ./oceanbase-client-2.4.0.jar /usr/share/java 然后设置临时环境变量。 $ export CLASSPATH=/usr/share/java/oceanbase-client-2.4.0.jar:$CLASSPATH 步骤三:编写示例代码 编写 Java 示例文件 Test.java,如下 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.Statement; public class Test { public static void main(String\[\] args) { try { Class.forName("com.oceanbase.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:oceanbase://192.192.103.125:2883/test_db?pool=false\&user=root@test#test_cluster\&password=Root_1234"); System.out.println(connection.getAutoCommit()); Statement sm = connection.createStatement(); //新建表 t_meta_form sm.executeUpdate("CREATE TABLE t_meta_form (name varchar(36) , id int)"); //插入数据 sm.executeUpdate("insert into t_meta_form values ('an','1')"); //查询数据,并输出结果 ResultSet rs = sm.executeQuery("select \* from t_meta_form"); while (rs.next()) { String name = rs.getString("name"); String id = rs.getString("id"); System.out.println(name + ','+ id); } //删除表 sm.executeUpdate("drop table t_meta_form"); }catch (SQLException ex) { System.out.println("error!"); ex.printStackTrace() ; }catch (ClassNotFoundException e) { e.printStackTrace(); } } } 如上,根据实际环境修改jdbc连接串参数信息。 步骤四:执行示例 代码编辑完成后,可以通过如下命令进行编译。 $ javac Test.java 编译完成后,运行代码。 $ java Test 获得如下结果,说明数据库连接成功,示例语句正确执行。 true an,1 附件:测试JDBC的负载均衡 1)编辑Test.java代码,添加如下内容: //显示当前连接的主机 try (ResultSet rr = sm.executeQuery("SELECT host_ip()")) { if (rr.next()) { System.out.println("Host IP: " + rr.getString(1)); } } ![](https://i-blog.csdnimg.cn/direct/f198b2b9fd4340aaab9fd136188a89eb.png) 2)重新编译 javac Test.java 3)执行多次,测试负载均衡功能 JDBC URL实现方式中的负载均衡策略有三种:RANDOM随机(默认),SERVERAFFINITY加权随机,ROTATION轮询。 #java Test ![](https://i-blog.csdnimg.cn/direct/99642e8735df42a6b795acadb7d41253.png) 如上图所示,返回的数据库IP是随机的。

相关推荐
Sammyyyyy36 分钟前
2025年,Javascript后端应该用 Bun、Node.js 还是 Deno?
开发语言·javascript·node.js
William一直在路上1 小时前
Python数据类型转换详解:从基础到实践
开发语言·python
看到我,请让我去学习2 小时前
Qt— 布局综合项目(Splitter,Stacked,Dock)
开发语言·qt
GUET_一路向前2 小时前
【C语言防御性编程】if条件常量在前,变量在后
c语言·开发语言·if-else·防御性编程
曳渔2 小时前
UDP/TCP套接字编程简单实战指南
java·开发语言·网络·网络协议·tcp/ip·udp
三千道应用题2 小时前
WPF&C#超市管理系统(6)订单详情、顾客注册、商品销售排行查询和库存提示、LiveChat报表
开发语言·c#·wpf
hqxstudying3 小时前
JAVA项目中邮件发送功能
java·开发语言·python·邮件
咪咪渝粮3 小时前
JavaScript 中constructor 属性的指向异常问题
开发语言·javascript
最初的↘那颗心3 小时前
Java HashMap深度解析:原理、实现与最佳实践
java·开发语言·面试·hashmap·八股文
后台开发者Ethan3 小时前
Python需要了解的一些知识
开发语言·人工智能·python