OceanBase
  • 产品
  • 解决方案
  • 客户
  • 合作伙伴
  • 资源与服务
  • 文档
  • 社区
云控制台登录 / 注册
  • 免费试用
本地部署
OceanBase 分布式数据库

首批通过分布式安全可靠测评,为关键业务系统打造

OceanBase 集中式数据库

集中式架构,兼具性能与成本优势的集中式数据库

OceanBase 社区版

兼容 MySQL 的单机分布式一体化开源数据库

OceanBase seekdb

为现代 AI 应用打造的开源混合搜索数据库

云上部署
OB Cloud

一体化云数据库,打造面向多云的一致性体验

一体机
OceanBase 数据库一体机

软硬一体,提供极致性能与高可靠性保障

OceanBase AI 一体机

基于 OceanBase AI Stack 的智能一体机

工具
迁移评估工具(OMA)
数据迁移工具(OMS)
开发者工具(ODC)
运维管理工具(OCP)
自治服务工具(OAS)
一体化关键能力
TP 事务处理

面向关键业务负载的事务处理能力,保障大规模业务稳定运行与数据零丢失

AP 实时分析

原生支持事务与分析融合,低延迟洞察业务数据,驱动智能决策与敏捷运营

AI 现代负载

湖库一体管理多模态数据离在线处理,AI 原生支撑 Agent 规模化应用

oceanbase白皮书

OceanBase 一体化分布式数据库

通用场景
全场景业务系统 OLTP
实时分析混合负载
异地多活
多基础设施部署
一站式传统数据库升级
混合云部署
一库多芯软硬件混合部署
分布式数据库单机部署
大存储类数据库降本
冷数据归档降本
多实例资源整合
分库分表一体化升级
高并发场景
数据中台
行业解决方案
国有大行和股份制银行核心系统解决方案
区域性银行核心系统解决方案
寿险核心系统解决方案
产险核心系统解决方案
资管交易类系统解决方案
资管 TA 清算类系统解决方案
运营商核心系统解决方案
人社核心系统解决方案
电力核心系统解决方案
行业专区
银行专区

助力银行完成各类核心业务系统升级

保险专区

寿险、产险核心系统升级的更佳选择

零售专区

助力200+零售行业客户规模化落地

DB 大咖说
oceanbase爱奇艺

百亿级卡券业务的“单库双擎”架构升级

oceanbase四川银行

800个测试用例选定分布式数据库

oceanbase太平洋保险

先难后易,核心系统数据库升级复盘

行业案例
oceanbase交通银行

核心数据库的“分布式革命”

oceanbase中国移动

B域核心CRM&BOSS近乎零改造分布式升级

oceanbase理想

打造领先的智能制造系统和自动驾驶体验

演讲实录
oceanbase中国联通

集团应用分布式数据库覆盖B/O/M域

oceanbase国泰海通

智能推送系统稳定支撑单日亿级消息处理量

oceanbase中国联合航空

中国首款机票盲盒背后的数据库力量

用户实践
oceanbase北京银行

最快速度完成40余套系统国产数据库升级

oceanbase维沃移动通信有限公司

替换 MySQL 分库分表,探索成本效益最优

oceanbase滴滴

数据库大规模运维体系建设及落地实践

合作伙伴
合作伙伴类型
联合解决方案
产业生态伙伴
经销商伙伴
技术服务伙伴
培训认证伙伴
生态联合解决方案
神州信息 x OceanBase 银行核心系统
长亮科技 x OceanBase 新核心系统
中电金信 x OceanBase 金融分布式核心系统
天阳科技 x OceanBase 贷记卡方案
易诚互动 x OceanBase 手机银行方案
恒生 x OceanBase UF3.0/O45/TA/估值方案
商业发行版
云树®数据库软件 ActionDB
服务
支持与服务
提交工单
软件下载
OceanBase 企业版
OceanBase 社区版
OB Cloud
学习
培训与认证
在线课堂
在线体验
开发者
开发者中心
资料
行业报告与白皮书
官方博客
年度发布会资料
开发者大会资料
oceanbase白皮书

金融核心系统数据库升级路径与场景实践

oceanbase白皮书

人社关键业务数据库一体化升级实践

产品文档
oceanbaseOceanBase 数据库
驱动和中间件
oceanbaseOB Cloud 云数据库
工具与组件
oceanbaseOceanBase 数据库一体机
生态商业产品
快速上手
OceanBase 数据库
OB Cloud 云数据库
知识库
汇聚常见产品使用问题案例
在线体验

Demo与实验,感受 OceanBase 的核心能力与应用场景

OceanBase 最佳实践
了解 OceanBase 分布式数据库的架构与系统原理
技术博客

技术解析 | 用户实践 | 社区月报

在线课堂

电子书 |视频课程|在线培训

Developer Hub
应用开发Demo | 数据开发与集成工具
问答论坛

快速答疑 | 常见问题 | 技术交流

社区活动

Meetup | 技术公开课

GitHub

查看源码 | 贡献代码 | 建议反馈

加入社区

社区组织 | 社区用户贡献 |开发者贡献

进入社区首页
oceanbase数据库大赛

第五届OceanBase数据库大赛

oceanbase免费课程
从故障处理到性能调优:OceanBase资深DBA进阶培训
切换语言
  • 中文站 - 简体中文
  • International - English
  • 日本站 - 日本語

OceanBase

OceanBase 海扬数据库始创于 2010 年,是完全自主研发的数据库公司。2020年开始独立商业化运作,历经15年大规模核心场景验证,目前是中国数据库的领军企业之一。从分布式数据库到 AI 数据库,为企业提供安全、稳定、可扩展的数据底座,推动数据基础设施全面拥抱 AI 时代。

关于我们

关于 OceanBase最新动态资质荣誉客户专家委员会招贤纳士合作伙伴年度发布会开发者大会

资源与服务

支持与服务文档知识库软件与工具下载培训与认证在线体验数据库专题视频

社区

快速上手开发者中心博客活动学习问答GitHub

数据库百科

分布式数据库国产数据库OLTP 数据库OLAP 数据库HTAP 数据库数据库向量数据库向量检索

联系我们

服务热线:
400-109-0633
商务咨询
培训认证技术支持媒体合作
京公网安备11010802047223号京公网安备11010802047223号
京ICP备20024574号-1
合字B1.B2-20250395
网站服务协议隐私协议安全响应协议
OceanBase 版权所有 © 2026 基础资源和备案服务由阿里云提供
文档反馈
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.6.0
  5. 生态集成
  6. ORM 框架
  7. Java
  8. Spring JDBC
分布式版-V4.6.0
  • What's New
  • 简介
  • 快速上手
  • 应用开发
  • 部署
  • 升级
  • 数据迁移
  • 管理数据库
  • AP
  • AI
  • 共享存储
  • 生态集成
    • 生态集成概述
    • ORM 框架
      • Java
        • SpringBoot
        • SpringBatch
        • Spring JDBC
        • SpringDataJPA
        • Hibernate
        • MyBatis
      • Python
      • Go
      • Rust
      • Ruby
      • Node.js
      • C#
      • PHP
    • 数据库版本管理
    • 数据集成
    • SQL 开发
    • 编排调度
    • 可视化工具
    • 数据库管控
    • AI
  • 实践教程
  • 参考指南
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.6.0
  5. 生态集成
  6. ORM 框架
  7. Java
  8. Spring JDBC

Spring JDBC 连接 OceanBase 数据库示例程序

更新时间:2026-06-15 17:14:50

github-fill编辑
编组分享

功能适用性

Spring JDBC 适用于 OceanBase 数据库 MySQL 和 Oracle 模式。本文档仅提供 MySQL 模式示例。

本文将介绍如何使用 Spring JDBC 框架、MySQL Connector/J 和 OceanBase 数据库构建一个应用程序,实现基本的数据库操作,包括创建表、插入和查询数据等。

点击下载 spring-jdbc-mysql-client 示例工程
Spring JDBC 连接 OceanBase 数据库示例程序(MySQL 模式)

前提条件

  • 您已安装 OceanBase 数据库并且创建了 MySQL 模式租户。

  • 您已安装 JDK 1.8 和 Maven。

  • 您已安装 Eclipse。

    说明

    本文档运行代码使用的工具是 Eclipse IDE for Java Developers 2022-03 版本,您也可以根据个人喜好选择适合自己的工具运行的示例代码。

操作步骤

说明

本文中给出的操作步骤是在 Windows 环境下使用 Eclipse IDE for Java Developers 2022-03 编译和运行该项目的步骤。如果您使用的是其他操作系统环境或编译器,那么操作步骤可能会略有不同。

  1. 将 spring-jdbc-mysql-client 项目导入到 Eclipse 中。
  2. 获取 OceanBase 数据库 URL。
  3. 修改 spring-jdbc-mysql-client 项目中的数据库连接信息。
  4. 运行 spring-jdbc-mysql-client 项目。

步骤一:将 spring-jdbc-mysql-client 项目导入到 Eclipse 中

  1. 打开 Eclipse,在菜单栏上选择 File -> Open Projects from File System。

  2. 在弹出的对话框中,点击 Directory 按钮选择项目所在的目录,然后点击 Finish 完成导入。

    说明

    当使用 Eclipse 导入 Maven 项目时,Eclipse 会自动检测项目中的 pom.xml 文件,并根据文件中描述的依赖关系自动下载所需的依赖库,并将它们添加到项目中。

    Import

  3. 查看项目情况。

    p1

步骤二:获取 OceanBase 数据库 URL

  1. 联系 OceanBase 数据库部署人员或者管理员获取相应的数据库连接串。

    示例如下:

    obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
    

    更多连接串的信息,请参见 通过 OBClient 连接 OceanBase 租户。

  2. 根据 OceanBase 数据库连接串信息填写下面 URL 的对应信息。

    jdbc:mysql://$host:$port/$database_name?user=$user_name&password=$password&useSSL=false
    

    参数说明:

    • $host:提供 OceanBase 数据库连接 IP。OceanBase 数据库代理(OceanBase Database Proxy,ODP)连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。

    • $port:提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 2883,在部署 ODP 时可自定义;直连方式默认是 2881,在部署 OceanBase 数据库时可自定义。

    • $database_name:需要访问的数据库名称。

      注意

      连接租户的用户需要拥有该数据库的 CREATE、INSERT、UPDATE、DELETE、SELECT 和 DROP 权限。更多有关用户权限的信息,请参见 MySQL 模式下的权限分类。

    • $user_name:提供租户的连接账户。ODP 连接的常用格式:用户名@租户名#集群名 或者 集群名:租户名:用户名;直连方式格式:用户名@租户名。

    • $password:提供账户密码。

    更多有关 MySQL Connector/J 连接属性信息,请参见 Configuration Properties。

    示例如下:

    jdbc:mysql://xxx.xxx.xxx.xxx:2881/test?user=test_user001@mysql001&password=******&useSSL=false
    

步骤三:修改 spring-jdbc-mysql-client 项目中的数据库连接信息

根据 步骤二:获取 OceanBase 数据库 URL 中获取的信息修改文件 spring-jdbc-mysql-client/src/main/java/com/example/Main.java 中的数据库连接信息。

3

示例如下:

  • OBServer 节点的 IP 地址为 xxx.xxx.xxx.xxx。
  • 访问端口使用的是 2881。
  • 需要访问的数据库名称为 test。
  • 租户的连接账户是 test_user001@mysql001。mysql001 是在 OceanBase 数据库中创建的一个 MySQL 模式的用户租户,test_user001 是租户 mysql001 的用户名称。
  • 密码是 ******。

代码如下:

...
        String url = "jdbc:mysql://xxx.xxx.xxx.xxx:2881/test?useSSL=false";
        String username = "test_user001@mysql001";
        String password = "******";
...

步骤四:运行 spring-jdbc-mysql-client 项目

  1. 在项目导航器视图中,找到并展开 src/main/java 目录。

  2. 右键点击 Main.java 文件,然后选择 Run As -> Java Application。

    run

  3. 在 Eclipse 的控制台窗口中来查看输出结果。

    5

项目代码介绍

点击 spring-jdbc-mysql-client 下载项目代码,是一个名称为 spring-jdbc-mysql-client.zip 的压缩包。

解压后,得到一个名为 spring-jdbc-mysql-client 的文件夹。目录结构如下所示:

spring-jdbc-mysql-client
├── src
│   └── main
│       └── java
│           └── com
│                └── example
│                   └── Main.java
└── pom.xml

文件说明:

  • src:源代码根目录。
  • main:主代码目录,包含应用程序的主要逻辑。
  • java:Java 源代码目录。
  • com:Java 包目录。
  • example:示例项目的包目录。
  • Main.java:主类,包含创建表和插入数据等逻辑。
  • pom.xml:Maven 项目的配置文件,用于管理项目的依赖和构建设置。

pom.xml 代码介绍

pom.xml 文件是 Maven 项目的配置文件,定义了项目的依赖项、插件和构建规则等信息。Maven 是一个 Java 项目管理工具,可以自动下载依赖项、编译和打包项目等操作。

本文 pom.xml 文件的代码主要包括以下几个部分:

  1. 文件声明语句。

    声明本文件是一个 XML 文件,使用的 XML 版本是 1.0,字符编码方式是 UTF-8。

    代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. 配置 POM 的命名空间和 POM 模型版本。

    1. 通过 xmlns 指定 POM 的命名空间为 http://maven.apache.org/POM/4.0.0。
    2. 通过 xmlns:xsi 指定 XML 命名空间 http://www.w3.org/2001/XMLSchema-instance。
    3. 通过 xsi:schemaLocation 指定 POM 的命名空间为 http://maven.apache.org/POM/4.0.0 和 POM 的 XSD 文件的位置为 http://maven.apache.org/xsd/maven-4.0.0.xsd。
    4. 通过 <modelVersion> 元素指定了该 POM 文件使用的 POM 模型版本为 4.0.0。

    代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
     <!-- 其他配置 -->
    
    </project>
    
  3. 配置基本信息。

    1. 通过 <groupId> 指定项目所属组织为 com.example。
    2. 通过 <artifactId> 指定项目的名称为 spring-jdbc-mysql-client。
    3. 通过 <version> 项目的版本号为 1.0-SNAPSHOT。

    代码如下:

        <groupId>com.example</groupId>
        <artifactId>spring-jdbc-mysql-client</artifactId>
        <version>1.0-SNAPSHOT</version>
    
  4. 配置项目源文件的属性。

    指定 Maven 的编译器插件为 maven-compiler-plugin,并设置了源代码和目标 Java 版本都为 8。这意味着项目的源代码使用 Java 8 特性编写,且编译后的字节码也将兼容 Java 8 运行时环境。这样设置可以确保项目在编译和运行时能够正确地处理 Java 8 的语法和特性。

    说明

    Java 1.8 和 Java 8 是同一个版本的不同命名方式。

    代码如下:

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>8</source>
                        <target>8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
  5. 配置项目所依赖组件。

    1. 添加 mysql-connector-java 依赖库,用于与数据库进行交互:

      说明

      本部分代码定义项目所依赖组件是 MySQL Connector/J 的 V5.1.40 版本,如果需要了解其他版本的信息,请参见 MySQL Connector/J。

      1. 通过 <groupId> 指定依赖项所属的组织为 mysql。
      2. 通过 <artifactId> 指定依赖项的名称为 mysql-connector-java。
      3. 通过 <version> 指定依赖项的版本号为 5.1.40。

      代码如下:

              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.40</version>
              </dependency>
      
    2. 添加 spring-jdbc 依赖库:

      1. 通过 <groupId> 指定依赖项所属的组织为 org.springframework。
      2. 通过 <artifactId> 指定依赖项的名称为 spring-jdbc。
      3. 通过 <version> 指定依赖项的版本号为 5.2.0.RELEASE。

      代码如下:

              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>5.2.0.RELEASE</version>
              </dependency>
      

Main.java 代码介绍

Main.java 文件是示例程序的一部分,代码演示了如何使用 Spring JDBC 框架执行数据库操作。它首先配置了数据库连接信息,然后创建了一个 JdbcTemplate 对象来执行数据库操作。代码中还包括了创建表、插入数据和查询数据的示例。

本文 Main.java 文件的代码主要包括以下几个部分:

  1. 定义包和导入必要的类。

    1. 声明当前代码所属的包名为 com.example。
    2. 导入 JdbcTemplate 类,它是 Spring JDBC 框架中的核心类,用于执行数据库操作。
    3. 导入 DriverManagerDataSource 类,它是 Spring 提供的一个实现了 DataSource 接口的数据源类,用于配置数据库连接信息。

    代码如下:

    package com.example;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    
  2. 创建一个 Main 类,并定义了 main 方法。

    1. 定义一个名为 Main 的公共类,作为程序的入口点。类名需要与文件名保持一致。
    2. 定义一个公共静态方法 main,作为程序的起始执行点。
    3. 其他数据库操作。

    代码如下:

    public class Main {
        public static void main(String[] args) {
            // 数据库连接信息
            // 创建数据源
            // 创建 JdbcTemplate 对象
            // 创建表
            // 插入数据
            // 更新数据
            // 删除数据
            // 查询数据
            // 删除表
        }
    }
    
  3. 定义数据库连接信息。

    定义用于连接数据库的 URL、用户名和密码。您需要将 $host、$port、$database_name、$user_name 和 $password 替换为实际的数据库连接信息。

    代码如下:

            String url = "jdbc:mysql://$host:$port/$database_name?useSSL=false";
            String username = "$user_name";
            String password = "$password";
    

    参数解释:

    • $host:提供 OceanBase 数据库连接 IP。ODP 连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。
    • $port:提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 2883,在部署 ODP 时可自定义;直连方式默认是 2881,在部署 OceanBase 数据库时可自定义。
    • $database_name:需要访问的数据库名称。
    • $user_name:通过 -u 参数指定,格式为 用户@租户#集群名称 或 用户名@SERVICE:服务名。使用格式 用户@租户#集群名称 时,默认租户为 sys,管理员用户为 root。直连数据库时可省略集群名称,ODP 连接时则需要填写。
    • $password:提供账户密码。
  4. 创建数据源。

    创建一个 DriverManagerDataSource 对象,并配置了数据库连接的相关信息,包括驱动类名、数据库 URL、用户名和密码。具体步骤如下:

    1. 创建一个 DriverManagerDataSource 对象,用于配置数据库连接的信息。
    2. 设置驱动类名:通过调用 setDriverClassName 方法,设置数据库驱动类名为 com.mysql.jdbc.Driver。
    3. 设置数据库 URL:通过调用 setUrl 方法,设置数据库的 URL。
    4. 设置用户名:通过调用 setUsername 方法,设置数据库的用户名。
    5. 设置密码:通过调用 setPassword 方法,设置数据库的密码。

    代码如下:

            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
    
  5. 创建 JdbcTemplate 对象。

    创建一个 JdbcTemplate 对象,它是 Spring JDBC 框架的核心类之一。JdbcTemplate 提供了执行数据库操作的方法,如执行 SQL 语句、更新数据以及查询数据等。

    代码如下:

            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    
  6. 创建表。

    1. 定义一个创建表的 SQL 语句,SQL 语句中指定表名为 test_springjdbc,并定义了两个列,一个是名为 id 的 INT 类型列,另一个是名为 name 的 VARCHAR(20) 类型列。
    2. 执行创建表的 SQL 语句,jdbcTemplate 对象通过调用 execute 方法,执行了上述定义的创建表的 SQL 语句。
    3. 在控制台输出一条成功创建表的消息。

    代码如下:

            String createTableSql = "CREATE TABLE test_springjdbc (id INT, name VARCHAR(20))";
            jdbcTemplate.execute(createTableSql);
            System.out.println("Create table successfully.");
    
  7. 插入数据。

    1. 定义插入数据的 SQL 语句,SQL 语句中指定了要插入的表为 test_springjdbc,列为 id 和 name,插入了两行数据,分别是 (1,'A1')、(2,'A2') 和 (3,'A3')。
    2. 执行插入数据的 SQL 语句,jdbcTemplate 对象通过调用 update 方法,执行了上述定义的插入数据的 SQL 语句。
    3. 在控制台输出一条成功插入数据的消息。

    代码如下:

            String insertDataSql = "INSERT INTO test_springjdbc (id,name) VALUES (1,'A1'), (2,'A2'), (3,'A3')";
            jdbcTemplate.update(insertDataSql);
            System.out.println("Insert data successfully.");
    
  8. 更新数据。

    1. 定义一个 SQL 语句,用于更新数据库表 test_springjdbc 中 id 为 1 的记录的 name 字段的值为 A11。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将更新操作应用于数据库。
    3. 在控制台输出一条成功更新数据的消息。

    代码如下:

            String updateDataSql = "UPDATE test_springjdbc SET name = 'A11' WHERE id = 1";
            jdbcTemplate.update(updateDataSql);
            System.out.println("Update data successfully.");
    
  9. 删除数据。

    1. 定义一个 SQL 语句,用于从数据库表 test_springjdbc 中删除 id 为 2 的记录。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将删除操作应用于数据库。
    3. 在控制台输出一条成功删除数据的消息。

    代码如下:

            String deleteDataSql = "DELETE FROM test_springjdbc WHERE id = 2";
            jdbcTemplate.update(deleteDataSql);
            System.out.println("Delete data successfully.");
    
  10. 查询数据。

    1. 定义查询数据的 SQL 语句,SQL 语句中使用了 SELECT * 来选择所有列,从 test_springjdbc 表中查询数据。
    2. 执行查询数据的SQL语句,jdbcTemplate 对象通过调用 query 方法,执行了上述定义的查询数据的 SQL 语句,并接收一个回调函数作为参数。
    3. 回调函数中的代码使用 ResultSet 对象(rs) 获取查询结果中的每一行数据,并进行处理。回调函数使用 getInt 和 getString 方法从 ResultSet 对象中获取 id 和 name 列的值,并将其打印到控制台。最后,回调函数返回 null。
    4. 在控制台输出一条成功查询数据的消息。

    代码如下:

            String selectDataSql = "SELECT * FROM test_springjdbc";
            jdbcTemplate.query(selectDataSql, (rs, rowNum) -> {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println("id: " + id + ", name: " + name);
                return null;
            });
            System.out.println("Query data successfully.");
    
  11. 删除表。

    1. 定义一个 SQL 语句,用于删除数据库中的表 test_springjdbc。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将删除表的操作应用于数据库。
    3. 输出一条成功删除表的消息。

    代码如下:

            String deleteTableSql = "DROP TABLE test_springjdbc";
            jdbcTemplate.execute(deleteTableSql);
            System.out.println("Table drop successfully.");
    

完整的代码展示

pom.xml
Main.java
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>spring-jdbc-mysql-client</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

</project>
package com.example;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class Main {
    public static void main(String[] args) {
        // Database Connect Information
        String url = "jdbc:mysql://$host:$port/$database_name?useSSL=false";
        String username = "$user_name";
        String password = "$password";

        // create data source
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);

        // Create a JdbcTemplate object
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        // Create table
        String createTableSql = "CREATE TABLE test_springjdbc (id INT, name VARCHAR(20))";
        jdbcTemplate.execute(createTableSql);
        System.out.println("Create table successfully.");

        // Insert data
        String insertDataSql = "INSERT INTO test_springjdbc (id,name) VALUES (1,'A1'), (2,'A2'), (3,'A3')";
        jdbcTemplate.update(insertDataSql);
        System.out.println("Insert data successfully.");

        // Update data
        String updateDataSql = "UPDATE test_springjdbc SET name = 'A11' WHERE id = 1";
        jdbcTemplate.update(updateDataSql);
        System.out.println("Update data successfully.");

        // Delete data
        String deleteDataSql = "DELETE FROM test_springjdbc WHERE id = 2";
        jdbcTemplate.update(deleteDataSql);
        System.out.println("Delete data successfully.");

        // Query data
        String selectDataSql = "SELECT * FROM test_springjdbc";
        jdbcTemplate.query(selectDataSql, (rs, rowNum) -> {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            System.out.println("id: " + id + ", name: " + name);
            return null;
        });
        System.out.println("Query data successfully.");
        // Delete table
        String deleteTableSql = "DROP TABLE test_springjdbc";
        jdbcTemplate.execute(deleteTableSql);
        System.out.println("Table drop successfully.");
    }
}

相关文档

更多 MySQL Connector/J 的信息,请参见 Overview of MySQL Connector/J。 MySQL Mode|

本文将介绍如何使用 Spring JDBC 框架、MySQL Connector/J 和 OceanBase 数据库构建一个应用程序,实现基本的数据库操作,包括创建表、插入和查询数据等。

点击下载 spring-jdbc-mysql-client 示例工程 Spring JDBC 连接 OceanBase 数据库示例程序(MySQL 模式)

前提条件

  • 您已安装 OceanBase 数据库并且创建了 MySQL 模式租户。

  • 您已安装 JDK 1.8 和 Maven。

  • 您已安装 Eclipse。

    说明

    本文档运行代码使用的工具是 Eclipse IDE for Java Developers 2022-03 版本,您也可以根据个人喜好选择适合自己的工具运行的示例代码。

操作步骤

说明

本文中给出的操作步骤是在 Windows 环境下使用 Eclipse IDE for Java Developers 2022-03 编译和运行该项目的步骤。如果您使用的是其他操作系统环境或编译器,那么操作步骤可能会略有不同。

  1. 将 spring-jdbc-mysql-client 项目导入到 Eclipse 中。
  2. 获取 OceanBase 数据库 URL。
  3. 修改 spring-jdbc-mysql-client 项目中的数据库连接信息。
  4. 运行 spring-jdbc-mysql-client 项目。

步骤一:将 spring-jdbc-mysql-client 项目导入到 Eclipse 中

  1. 打开 Eclipse,在菜单栏上选择 File -> Open Projects from File System。

  2. 在弹出的对话框中,点击 Directory 按钮选择项目所在的目录,然后点击 Finish 完成导入。

    说明

    当使用 Eclipse 导入 Maven 项目时,Eclipse 会自动检测项目中的 pom.xml 文件,并根据文件中描述的依赖关系自动下载所需的依赖库,并将它们添加到项目中。

    Import

  3. 查看项目情况。

    p1

步骤二:获取 OceanBase 数据库 URL

  1. 联系 OceanBase 数据库部署人员或者管理员获取相应的数据库连接串。

    示例如下:

    obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
    

    更多连接串的信息,请参见 通过 OBClient 连接 OceanBase 租户。

  2. 根据 OceanBase 数据库连接串信息填写下面 URL 的对应信息。

    jdbc:mysql://$host:$port/$database_name?user=$user_name&password=$password&useSSL=false
    

    参数说明:

    • $host:提供 OceanBase 数据库连接 IP。OceanBase 数据库代理(OceanBase Database Proxy,ODP)连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。

    • $port:提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 2883,在部署 ODP 时可自定义;直连方式默认是 2881,在部署 OceanBase 数据库时可自定义。

    • $database_name:需要访问的数据库名称。

      注意

      连接租户的用户需要拥有该数据库的 CREATE、INSERT、UPDATE、DELETE、SELECT 和 DROP 权限。更多有关用户权限的信息,请参见 MySQL 模式下的权限分类。

    • $user_name:提供租户的连接账户。ODP 连接的常用格式:用户名@租户名#集群名 或者 集群名:租户名:用户名;直连方式格式:用户名@租户名。

    • $password:提供账户密码。

    更多有关 MySQL Connector/J 连接属性信息,请参见 Configuration Properties。

    示例如下:

    jdbc:mysql://xxx.xxx.xxx.xxx:2881/test?user=test_user001@mysql001&password=******&useSSL=false
    

步骤三:修改 spring-jdbc-mysql-client 项目中的数据库连接信息

根据 步骤二:获取 OceanBase 数据库 URL 中获取的信息修改文件 spring-jdbc-mysql-client/src/main/java/com/example/Main.java 中的数据库连接信息。

3

示例如下:

  • OBServer 节点的 IP 地址为 xxx.xxx.xxx.xxx。
  • 访问端口使用的是 2881。
  • 需要访问的数据库名称为 test。
  • 租户的连接账户是 test_user001@mysql001。mysql001 是在 OceanBase 数据库中创建的一个 MySQL 模式的用户租户,test_user001 是租户 mysql001 的用户名称。
  • 密码是 ******。

代码如下:

...
        String url = "jdbc:mysql://xxx.xxx.xxx.xxx:2881/test?useSSL=false";
        String username = "test_user001@mysql001";
        String password = "******";
...

步骤四:运行 spring-jdbc-mysql-client 项目

  1. 在项目导航器视图中,找到并展开 src/main/java 目录。

  2. 右键点击 Main.java 文件,然后选择 Run As -> Java Application。

    run

  3. 在 Eclipse 的控制台窗口中来查看输出结果。

    5

项目代码介绍

点击 spring-jdbc-mysql-client 下载项目代码,是一个名称为 spring-jdbc-mysql-client.zip 的压缩包。

解压后,得到一个名为 spring-jdbc-mysql-client 的文件夹。目录结构如下所示:

spring-jdbc-mysql-client
├── src
│   └── main
│       └── java
│           └── com
│                └── example
│                   └── Main.java
└── pom.xml

文件说明:

  • src:源代码根目录。
  • main:主代码目录,包含应用程序的主要逻辑。
  • java:Java 源代码目录。
  • com:Java 包目录。
  • example:示例项目的包目录。
  • Main.java:主类,包含创建表和插入数据等逻辑。
  • pom.xml:Maven 项目的配置文件,用于管理项目的依赖和构建设置。

pom.xml 代码介绍

pom.xml 文件是 Maven 项目的配置文件,定义了项目的依赖项、插件和构建规则等信息。Maven 是一个 Java 项目管理工具,可以自动下载依赖项、编译和打包项目等操作。

本文 pom.xml 文件的代码主要包括以下几个部分:

  1. 文件声明语句。

    声明本文件是一个 XML 文件,使用的 XML 版本是 1.0,字符编码方式是 UTF-8。

    代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    
  2. 配置 POM 的命名空间和 POM 模型版本。

    1. 通过 xmlns 指定 POM 的命名空间为 http://maven.apache.org/POM/4.0.0。
    2. 通过 xmlns:xsi 指定 XML 命名空间 http://www.w3.org/2001/XMLSchema-instance。
    3. 通过 xsi:schemaLocation 指定 POM 的命名空间为 http://maven.apache.org/POM/4.0.0 和 POM 的 XSD 文件的位置为 http://maven.apache.org/xsd/maven-4.0.0.xsd。
    4. 通过 <modelVersion> 元素指定了该 POM 文件使用的 POM 模型版本为 4.0.0。

    代码如下:

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
     <!-- 其他配置 -->
    
    </project>
    
  3. 配置基本信息。

    1. 通过 <groupId> 指定项目所属组织为 com.example。
    2. 通过 <artifactId> 指定项目的名称为 spring-jdbc-mysql-client。
    3. 通过 <version> 项目的版本号为 1.0-SNAPSHOT。

    代码如下:

        <groupId>com.example</groupId>
        <artifactId>spring-jdbc-mysql-client</artifactId>
        <version>1.0-SNAPSHOT</version>
    
  4. 配置项目源文件的属性。

    指定 Maven 的编译器插件为 maven-compiler-plugin,并设置了源代码和目标 Java 版本都为 8。这意味着项目的源代码使用 Java 8 特性编写,且编译后的字节码也将兼容 Java 8 运行时环境。这样设置可以确保项目在编译和运行时能够正确地处理 Java 8 的语法和特性。

    说明

    Java 1.8 和 Java 8 是同一个版本的不同命名方式。

    代码如下:

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>8</source>
                        <target>8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    
  5. 配置项目所依赖组件。

    1. 添加 mysql-connector-java 依赖库,用于与数据库进行交互:

      说明

      本部分代码定义项目所依赖组件是 MySQL Connector/J 的 V5.1.40 版本,如果需要了解其他版本的信息,请参见 MySQL Connector/J。

      1. 通过 <groupId> 指定依赖项所属的组织为 mysql。
      2. 通过 <artifactId> 指定依赖项的名称为 mysql-connector-java。
      3. 通过 <version> 指定依赖项的版本号为 5.1.40。

      代码如下:

              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.40</version>
              </dependency>
      
    2. 添加 spring-jdbc 依赖库:

      1. 通过 <groupId> 指定依赖项所属的组织为 org.springframework。
      2. 通过 <artifactId> 指定依赖项的名称为 spring-jdbc。
      3. 通过 <version> 指定依赖项的版本号为 5.2.0.RELEASE。

      代码如下:

              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-jdbc</artifactId>
                  <version>5.2.0.RELEASE</version>
              </dependency>
      

Main.java 代码介绍

Main.java 文件是示例程序的一部分,代码演示了如何使用 Spring JDBC 框架执行数据库操作。它首先配置了数据库连接信息,然后创建了一个 JdbcTemplate 对象来执行数据库操作。代码中还包括了创建表、插入数据和查询数据的示例。

本文 Main.java 文件的代码主要包括以下几个部分:

  1. 定义包和导入必要的类。

    1. 声明当前代码所属的包名为 com.example。
    2. 导入 JdbcTemplate 类,它是 Spring JDBC 框架中的核心类,用于执行数据库操作。
    3. 导入 DriverManagerDataSource 类,它是 Spring 提供的一个实现了 DataSource 接口的数据源类,用于配置数据库连接信息。

    代码如下:

    package com.example;
    
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.datasource.DriverManagerDataSource;
    
  2. 创建一个 Main 类,并定义了 main 方法。

    1. 定义一个名为 Main 的公共类,作为程序的入口点。类名需要与文件名保持一致。
    2. 定义一个公共静态方法 main,作为程序的起始执行点。
    3. 其他数据库操作。

    代码如下:

    public class Main {
        public static void main(String[] args) {
            // 数据库连接信息
            // 创建数据源
            // 创建 JdbcTemplate 对象
            // 创建表
            // 插入数据
            // 更新数据
            // 删除数据
            // 查询数据
            // 删除表
        }
    }
    
  3. 定义数据库连接信息。

    定义用于连接数据库的 URL、用户名和密码。您需要将 $host、$port、$database_name、$user_name 和 $password 替换为实际的数据库连接信息。

    代码如下:

            String url = "jdbc:mysql://$host:$port/$database_name?useSSL=false";
            String username = "$user_name";
            String password = "$password";
    

    参数解释:

    • $host:提供 OceanBase 数据库连接 IP。ODP 连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。
    • $port:提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 2883,在部署 ODP 时可自定义;直连方式默认是 2881,在部署 OceanBase 数据库时可自定义。
    • $database_name:需要访问的数据库名称。
    • $user_name:提供租户的连接账户。ODP 连接的常用格式:用户名@租户名#集群名 或者 集群名:租户名:用户名;直连方式格式:用户名@租户名。
    • $password:提供账户密码。
  4. 创建数据源。

    创建一个 DriverManagerDataSource 对象,并配置了数据库连接的相关信息,包括驱动类名、数据库 URL、用户名和密码。具体步骤如下:

    1. 创建一个 DriverManagerDataSource 对象,用于配置数据库连接的信息。
    2. 设置驱动类名:通过调用 setDriverClassName 方法,设置数据库驱动类名为 com.mysql.jdbc.Driver。
    3. 设置数据库 URL:通过调用 setUrl 方法,设置数据库的 URL。
    4. 设置用户名:通过调用 setUsername 方法,设置数据库的用户名。
    5. 设置密码:通过调用 setPassword 方法,设置数据库的密码。

    代码如下:

            DriverManagerDataSource dataSource = new DriverManagerDataSource();
            dataSource.setDriverClassName("com.mysql.jdbc.Driver");
            dataSource.setUrl(url);
            dataSource.setUsername(username);
            dataSource.setPassword(password);
    
  5. 创建 JdbcTemplate 对象。

    创建一个 JdbcTemplate 对象,它是 Spring JDBC 框架的核心类之一。JdbcTemplate 提供了执行数据库操作的方法,如执行 SQL 语句、更新数据以及查询数据等。

    代码如下:

            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    
  6. 创建表。

    1. 定义一个创建表的 SQL 语句,SQL 语句中指定表名为 test_springjdbc,并定义了两个列,一个是名为 id 的 INT 类型列,另一个是名为 name 的 VARCHAR(20) 类型列。
    2. 执行创建表的 SQL 语句,jdbcTemplate 对象通过调用 execute 方法,执行了上述定义的创建表的 SQL 语句。
    3. 在控制台输出一条成功创建表的消息。

    代码如下:

            String createTableSql = "CREATE TABLE test_springjdbc (id INT, name VARCHAR(20))";
            jdbcTemplate.execute(createTableSql);
            System.out.println("Create table successfully.");
    
  7. 插入数据。

    1. 定义插入数据的 SQL 语句,SQL 语句中指定了要插入的表为 test_springjdbc,列为 id 和 name,插入了两行数据,分别是 (1,'A1')、(2,'A2') 和 (3,'A3')。
    2. 执行插入数据的 SQL 语句,jdbcTemplate 对象通过调用 update 方法,执行了上述定义的插入数据的 SQL 语句。
    3. 在控制台输出一条成功插入数据的消息。

    代码如下:

            String insertDataSql = "INSERT INTO test_springjdbc (id,name) VALUES (1,'A1'), (2,'A2'), (3,'A3')";
            jdbcTemplate.update(insertDataSql);
            System.out.println("Insert data successfully.");
    
  8. 更新数据。

    1. 定义一个 SQL 语句,用于更新数据库表 test_springjdbc 中 id 为 1 的记录的 name 字段的值为 A11。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将更新操作应用于数据库。
    3. 在控制台输出一条成功更新数据的消息。

    代码如下:

            String updateDataSql = "UPDATE test_springjdbc SET name = 'A11' WHERE id = 1";
            jdbcTemplate.update(updateDataSql);
            System.out.println("Update data successfully.");
    
  9. 删除数据。

    1. 定义一个 SQL 语句,用于从数据库表 test_springjdbc 中删除 id 为 2 的记录。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将删除操作应用于数据库。
    3. 在控制台输出一条成功删除数据的消息。

    代码如下:

            String deleteDataSql = "DELETE FROM test_springjdbc WHERE id = 2";
            jdbcTemplate.update(deleteDataSql);
            System.out.println("Delete data successfully.");
    
  10. 查询数据。

    1. 定义查询数据的 SQL 语句,SQL 语句中使用了 SELECT * 来选择所有列,从 test_springjdbc 表中查询数据。
    2. 执行查询数据的SQL语句,jdbcTemplate 对象通过调用 query 方法,执行了上述定义的查询数据的 SQL 语句,并接收一个回调函数作为参数。
    3. 回调函数中的代码使用 ResultSet 对象(rs) 获取查询结果中的每一行数据,并进行处理。回调函数使用 getInt 和 getString 方法从 ResultSet 对象中获取 id 和 name 列的值,并将其打印到控制台。最后,回调函数返回 null。
    4. 在控制台输出一条成功查询数据的消息。

    代码如下:

            String selectDataSql = "SELECT * FROM test_springjdbc";
            jdbcTemplate.query(selectDataSql, (rs, rowNum) -> {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println("id: " + id + ", name: " + name);
                return null;
            });
            System.out.println("Query data successfully.");
    
  11. 删除表。

    1. 定义一个 SQL 语句,用于删除数据库中的表 test_springjdbc。
    2. 通过 jdbcTemplate 对象执行 SQL 语句,将删除表的操作应用于数据库。
    3. 输出一条成功删除表的消息。

    代码如下:

            String deleteTableSql = "DROP TABLE test_springjdbc";
            jdbcTemplate.execute(deleteTableSql);
            System.out.println("Table drop successfully.");
    

完整的代码展示

pom.xml
Main.java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>spring-jdbc-mysql-client</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

</project>
package com.example;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class Main {
    public static void main(String[] args) {
        // Database Connect Information
        String url = "jdbc:mysql://$host:$port/$database_name?useSSL=false";
        String username = "$user_name";
        String password = "$password";

        // create data source
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);

        // Create a JdbcTemplate object
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        // Create table
        String createTableSql = "CREATE TABLE test_springjdbc (id INT, name VARCHAR(20))";
        jdbcTemplate.execute(createTableSql);
        System.out.println("Create table successfully.");

        // Insert data
        String insertDataSql = "INSERT INTO test_springjdbc (id,name) VALUES (1,'A1'), (2,'A2'), (3,'A3')";
        jdbcTemplate.update(insertDataSql);
        System.out.println("Insert data successfully.");

        // Update data
        String updateDataSql = "UPDATE test_springjdbc SET name = 'A11' WHERE id = 1";
        jdbcTemplate.update(updateDataSql);
        System.out.println("Update data successfully.");

        // Delete data
        String deleteDataSql = "DELETE FROM test_springjdbc WHERE id = 2";
        jdbcTemplate.update(deleteDataSql);
        System.out.println("Delete data successfully.");

        // Query data
        String selectDataSql = "SELECT * FROM test_springjdbc";
        jdbcTemplate.query(selectDataSql, (rs, rowNum) -> {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            System.out.println("id: " + id + ", name: " + name);
            return null;
        });
        System.out.println("Query data successfully.");

        // Delete table
        String deleteTableSql = "DROP TABLE test_springjdbc";
        jdbcTemplate.execute(deleteTableSql);
        System.out.println("Table drop successfully.");
    }
}

相关文档

更多 MySQL Connector/J 的信息,请参见 Overview of MySQL Connector/J。

本文目录

前提条件操作步骤步骤一:将 spring-jdbc-mysql-client 项目导入到 Eclipse 中步骤二:获取 OceanBase 数据库 URL步骤三:修改 spring-jdbc-mysql-client 项目中的数据库连接信息步骤四:运行 spring-jdbc-mysql-client 项目项目代码介绍pom.xml 代码介绍Main.java 代码介绍完整的代码展示相关文档前提条件操作步骤步骤一:将 spring-jdbc-mysql-client 项目导入到 Eclipse 中步骤二:获取 OceanBase 数据库 URL步骤三:修改 spring-jdbc-mysql-client 项目中的数据库连接信息步骤四:运行 spring-jdbc-mysql-client 项目项目代码介绍pom.xml 代码介绍Main.java 代码介绍完整的代码展示相关文档
有帮助
无帮助
反馈
AI