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));

}

}

2)重新编译

javac Test.java

3)执行多次,测试负载均衡功能

JDBC URL实现方式中的负载均衡策略有三种:RANDOM随机(默认),SERVERAFFINITY加权随机,ROTATION轮询。

#java Test

如上图所示,返回的数据库IP是随机的。

相关推荐
IvanCodes1 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae3 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
qq_2518364575 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理6 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手6 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长7 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
weixin_307779139 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
2601_966949659 小时前
为什么量化回测中 for 循环比 DataFrame 慢三个数量级?从向量化原理讲起
开发语言·python·pandas·股票数据·quantdash
边境悍匪11 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring