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是随机的。

相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨7 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区9 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大9 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai10 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜10 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa10 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio