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
  • 日本站 - 日本語
文档反馈
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.3.5
  5. 应用开发
  6. 基于 Oracle 模式进行应用开发
  7. 示例程序
  8. Java
  9. SpringBoot
分布式版-V4.3.5LTS
  • V4.3.5 文档更新记录
  • What's New
  • 简介
  • 快速上手
  • 应用开发
    • 基于 MySQL 模式进行应用开发
    • 基于 Oracle 模式进行应用开发
      • 连接 OceanBase 数据库
      • 示例程序
        • Java
          • Connector/J
          • SpringBoot
          • SpringBatch
          • Spring JDBC
          • SpringDataJPA
          • Hibernate
          • MyBatis
          • Jfinal
        • Python
        • C/C++
      • 规划数据库对象
      • 数据写入
      • 数据读取
      • 事务
      • 应用程序报错处理规范与常见报错处理
  • 部署
  • 升级
  • 数据迁移
  • 管理数据库
  • AP
  • 向量搜索
  • 共享存储
  • 生态集成
  • 实践教程
  • 参考指南
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.3.5
  5. 应用开发
  6. 基于 Oracle 模式进行应用开发
  7. 示例程序
  8. Java
  9. SpringBoot

SpringBoot 连接 OceanBase 数据库示例程序

更新时间:2026-04-07 20:57:19

github-fill编辑
编组分享

本文将介绍如何使用 SpringBoot 框架和 OceanBase 数据库构建一个应用程序,实现创建表、插入数据和查询数据等基本操作。

点击下载 java-oceanbase-springboot 示例工程 SpringBoot 连接 OceanBase 数据库示例程序(Oracle 模式)

前提条件

  • 您已安装 OceanBase 数据库。
  • 您已安装 JDK 1.8 和 Maven。
  • 您已安装 IntelliJ IDEA。

说明

本文档运行代码使用的工具是 IntelliJ IDEA 2021.3.2 (Community Edition) 版本,您也可以根据个人喜好选择适合自己的工具运行示例代码。

操作步骤

说明

本文中给出的操作步骤是基于 Windows 环境生成。如果您使用的是其他操作系统环境或编译器,那么操作步骤可能会略有不同。

  1. 获取 OceanBase 数据库连接信息。
  2. 导入 java-oceanbase-springboot 项目到 IDEA 中。
  3. 修改 java-oceanbase-springboot 项目中的数据库连接信息。
  4. 运行 java-oceanbase-springboot 项目。

步骤一:获取 OceanBase 数据库连接信息

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

    obclient -hxx.xx.xx.xx -P2883 -uroot@sys#cluster -p**** -A
    
  2. 根据已部署的 OceanBase 数据库填写下面 URL 的对应信息。

    说明

    在 application.properties 文件中需要这里的 URL 信息。

    jdbc:oceanbase://host:port/schema_name?user=$user_name&password=$password&useSSL=false&useUnicode=true&characterEncoding=utf-8
    

    参数说明:

    • host:提供 OceanBase 数据库连接 IP。ODP 连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。

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

    • schema_name:需要访问的 Schema 名称。

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

    • password:提供账户密码。

    • useSSL=false&useUnicode=true&characterEncoding=utf-8:为额外的连接属性。

      • useSSL:强制连接时是否使用 SSL/TLS。 默认值:false。
      • useUnicode:指定字符的编码、解码格式。 默认值:true。
      • characterEncoding:支持数据库 URL 选项的字符编码。默认值:utf8。
      • socketTimeout:定义了网络 Socket 超时(SO_TIMEOUT),以毫秒为单位。值为 0 时将禁用此超时。

更多 URL 参数说明信息,请参见 数据库 URL。

步骤二:导入 java-oceanbase-springboot 项目到 IDEA 中

  1. 打开 IntelliJ IDEA,选择 File > Open... 选项。

    file

  2. 在弹出的 Open File or Project 窗口中,选择对应的项目文件,单击 OK 完成项目文件导入。

  3. IntelliJ IDEA 将会自动识别项目中的各类文件,并在 Project 工具窗口中,可以查看项目的目录结构、文件列表、模块列表、依赖关系等信息。Project 工具窗口通常位于 IntelliJ IDEA 界面的最左侧,默认情况下是打开的。如果 Project 工具窗口被关闭了,可以通过点击菜单栏中的 View > Tool Windows > Project 或者使用快捷键 Alt + 1 来重新打开它。

    说明

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

  4. 查看项目情况。

springboot

步骤三:修改 java-oceanbase-springboot 项目中的数据库连接信息

根据 步骤一:获取 OceanBase 数据库连接信息 中的信息修改 application.properties 文件中的数据库连接信息。

示例如下:

  • 数据库驱动的名称为:com.oceanbase.jdbc.Driver
  • OBServer 节点的 IP 地址为 10.10.10.1。
  • 访问端口使用的是 2881。
  • 需要访问的 Schema 名称为 sys。
  • 租户的连接账户是 sys@xyoracle。xyoracle 是在 OceanBase 数据库中创建的一个 Oracle 模式的用户租户,sys 是租户 xyoracle 的用户名称。
  • 密码是 ******。

示例代码如下:

spring.datasource.driverClassName=com.oceanbase.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://10.10.10.1:2881/sys?useSSL=false&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=sys@xyoracle
spring.datasource.password=******

步骤四:运行 java-oceanbase-hibernate 项目

运行路径

  1. 在项目结构中找到 src > test > java 中找到 TestSpringbootApplicationTests.java 文件。
  2. 在工具菜单栏中选择 运行(U) > 运行 > TestSpringbootApplicationTests,或直接单击右上角绿色三角形运行。
  3. 通过 IDEA 的控制台来查看项目的日志信息和输出结果。

运行结果

test_springboot delete successfully!
test_springboot create successfully!
user = User{id=2, name='update'}
User{id=2, name='update'}
User{id=3, name='insert3'}
User{id=4, name='insert4'}
User{id=5, name='insert5'}
User{id=6, name='insert6'}
User{id=7, name='insert7'}
User{id=8, name='insert8'}
User{id=9, name='insert9'}
User{id=10, name='insert10'}

项目代码介绍

点击 java-oceanbase-springboot 下载项目代码,这是一个名为 java-oceanbase-springboot 的压缩包。

解压后,得到一个名为 java-oceanbase-springboot 的文件夹。目录结构如下所示:

│--pom.xml
│
├─.idea
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─oceanbase
│  │  │          └─testspringboot
│  │  │              │--TestSpringbootApplication.java
│  │  │              │
│  │  │              ├─dao
│  │  │              │  │--UserDao.java
│  │  │              │  │
│  │  │              │  └─impl
│  │  │              │      └─--UserDaoImpl.java
│  │  │              │
│  │  │              └─entity
│  │  │                  └─--User.java
│  │  │
│  │  └─resources
│  │      └─--application.properties
│  │
│  └─test
│      └─java
│          └─com
│              └─oceanbase
│                  └─testspringboot
│                      └─--TestSpringbootApplicationTests.java
│
└─target

文件说明:

  • pom.xml:Maven 项目的配置文件,包含了项目的依赖、插件、构建等信息。
  • .idea:IDE(集成开发环境)中使用的目录,用于存储项目相关的配置信息。
  • src:通常用于表示项目中存放源代码的目录。
  • main: 存放主要的源代码和资源文件的目录。
  • java: 存放 Java 源代码的目录。
  • com: 存放 Java 包的根目录。
  • oceanbase: 存放项目的根目录。
  • testspringboot:Java 包的根目录,包含了项目的所有 Java 类。
  • TestSpringbootApplication.java:项目的主类,包含了 main 方法。
  • dao: 存放数据访问对象(Data Access Object)包,用于访问数据库或其他数据存储服务。
  • UserDao.java:用户数据访问对象,用于操作用户数据的增删改查等操作。
  • impl:DAO 接口的实现目录。
  • UserDaoImpl.java:用户 DAO 接口的实现类。
  • entity:实体类的目录,用于存放与数据库表对应的 Java 类。
  • User.java:用户持久化对象,用于映射用户数据表的字段。
  • resources: 存放资源文件的目录,如配置文件、SQL 文件等。
  • application.properties:项目的配置文件,用于配置应用程序的属性和参数。
  • test: 存放测试代码和资源文件的目录。
  • TestSpringbootApplicationTests.java: 存放测试 springboot 的 Java 类。
  • target: 存放编译后的 Class 文件、Jar 包等文件的目录。

pom.xml 代码介绍

说明

如果您只是想验证示例,那么请使用默认代码,无需修改。您也可以按照以下讲解,根据自己的需求修改 pom.xml 文件。

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 文件的位置为 https://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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
    </project>
    
  3. 配置父项信息。

    1. 通过 <groupId> 指定父项标识为 org.springframework.boot。
    2. 通过 <artifactId> 指定父项依赖为 spring-boot-starter-parent。
    3. 通过 <version> 指定父项的版本号为 2.7.11。
    4. 通过 relativePath 表示父项的路径为空。

    代码如下:

     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.7.11</version>
     <relativePath/> 
    
  4. 配置基本信息。

    1. 通过 <groupId> 指定项目标识为 com.oceanbase。
    2. 通过 <artifactId> 指定项目依赖为 java-oceanbase-springboot。
    3. 通过 <version> 指定项目的版本号为 0.0.1-SNAPSHOT。
    4. 通过 description 介绍项目信息为 Demo project for Spring Boot。

    代码如下:

     <groupId>com.oceanbase</groupId>
     <artifactId>java-oceanbase-springboot</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>java-oceanbase-springboot</name>
     <description>Demo project for Spring Boot</description>
    
  5. 配置 java 版本。

    指定项目使用的 Java 版本为 1.8。

    代码如下:

      <properties>
          <java.version>1.8</java.version>
      </properties>
    
  6. 配置核心依赖。

    1. 指定依赖项所属的组织为 org.springframework.boot,名称为 spring-boot-starter,该依赖库包含了 Spring Boot 默认支持的组件依赖,支持 Web、数据处理、安全、Test 等功能。

      代码如下:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
      </dependency>
      
    2. 指定依赖项所属的组织为 org.springframework.boot,名称为 spring-boot-starter-jdbc,通过该依赖可以使用 Spring Boot 提供的 JDBC 相关功能,如连接池、数据源配置等。

      代码如下:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      
    3. 指定依赖项所属的组织为 org.springframework.boot,名称为 spring-boot-starter-test,作用范围为 test,通过该依赖可以使用 Spring Boot 提供的测试框架和工具,如 JUnit、Mockito、Hamcrest 等。

      代码如下:

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
      
    4. 指定依赖项所属的组织为 com.oceanbase,名称为 oceanbase-client,版本号为 2.4.3,通过该依赖可以使用 OceanBase 提供的客户端功能,如连接、查询、事务等。

      代码如下:

          <dependencies>
          <dependency>
              <groupId>com.oceanbase</groupId>
              <artifactId>oceanbase-client</artifactId>
              <version>2.4.3</version>
          </dependency>
          </dependencies>
      
  7. 配置 Maven 插件。

    指定依赖项所属的组织为 org.springframework.boot,名称为 spring-boot-maven-plugin,该插件用于将 Spring Boot 应用程序打包成可执行的 JAR 包或 WAR 包,并且可以直接运行。

    代码如下:

     <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
         </plugins>
     </build>
    

application.properties 代码介绍

application.properties 文件配置了 Spring Boot 应用程序的数据源,指定了连接 OceanBase 数据库所需的驱动类名、URL、用户名和密码。通过这些配置,应用程序可以连接并操作 OceanBase 数据库。

  • 通过 spring.datasource.driverClassName 指定数据库驱动程序为 com.oceanbase.jdbc.Driver,用于与 OceanBase 数据库建立连接。

  • 通过 spring.datasource.url 指定连接数据库的 URL。

  • 通过 spring.datasource.username 指定连接数据库的用户名。

  • 通过 spring.datasource.password 指定连接数据库的密码。

    代码如下:

    spring.datasource.driverClassName=com.oceanbase.jdbc.Driver
    spring.datasource.url=jdbc:oceanbase://host:port/schema_name?useSSL=false&useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=user_name
    spring.datasource.password=******
    

UserDaoImpl.java 文件介绍

UserDaoImpl.java 文件通过使用 JdbcTemplate 对象执行 SQL 语句,实现了对 User 表的插入、删除、更新和查询操作。

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

  1. 引用其他类和接口。

    声明当前文件所属的包名为 com.oceanbase.testspringboot.dao.impl,包含以下接口和类:

    • UserDao 接口:用于实现了 UserDao 接口中定义的方法。
    • User 类:用于传递和存储用户数据。
    • Autowired 注解:将 JdbcTemplate 对象注入到该类中,用于执行 SQL 语句。
    • BeanPropertyRowMapper 类:用于将数据库查询结果映射为 Java 对象。
    • JdbcTemplate 类:用于执行 SQL 语句和处理数据库访问。
    • Repository 注解:标记 Spring 的仓库组件,用于数据访问。
    • List 接口:用于操作查询结果集合。

    代码如下:

    import com.oceanbase.testspringboot.dao.UserDao;
    import com.oceanbase.testspringboot.entity.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.BeanPropertyRowMapper;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Repository;
    import java.util.List;
    
  2. 定义 UserDaoImpl 类。

    通过使用 Repository 注解指定该类的 Bean 名称为 userDao,并使用 JdbcTemplate 对象执行 SQL 语句,实现了对 User 表的插入、删除、更新和查询操作。

    1. 插入用户信息。

      通过调用 JdbcTemplate 对象的 insert 方法,将用户的 ID 和姓名插入到数据库中的 test_springboot 表中,并根据插入操作的结果返回相应的布尔值。

      代码如下:

      @Autowired
          private JdbcTemplate jdbcTemplate; //Jdbc connection tool class
          @Override
          public boolean insertUser(User user) {
              String sql = "insert into test_springboot(id,name)values(?,?)";
              Object[] params = {user.getId(), user.getName()};
              return jdbcTemplate.update(sql, params) > 0;
          }
      
    2. 删除用户信息。

      通过调用 JdbcTemplate 对象的 delete 方法,根据用户的 ID 删除数据库中的用户信息,并根据删除操作的结果返回相应的布尔值。

      代码如下:

      @Override
      public boolean deleteById(Long id) {
          String sql = "delete from test_springboot where id=?";
          Object[] params = {id};
          return jdbcTemplate.update(sql, params) > 0;
      }
      
    3. 更新用户信息。

      通过调用 JdbcTemplate 对象的 update 方法,将用户的姓名更新到数据库中的 test_springboot 表中指定 ID 的记录,并根据更新操作的结果返回相应的布尔值。

      代码如下:

      @Override
      public boolean updateUser(User user) {
          String sql = "update test_springboot set name=? where id=?";
          Object[] params = {user.getName(), user.getId()};
          return jdbcTemplate.update(sql, params) > 0;
      }
      
    4. 查询用户信息。

      通过使用 JdbcTemplate 对象执行 SQL 查询语句,从名为 test_springboot 的表中查询指定 ID 的用户记录,并使用 BeanPropertyRowMapper 进行结果映射。返回查询结果对象。

      代码如下:

      @Override
      public User selectUserById(Long id) {
          String sql = "select * from test_springboot where id=?";
          Object[] params = new Object[]{id};
          return jdbcTemplate.queryForObject(
                  sql,
                  params,
                  new BeanPropertyRowMapper<>(User.class));
      }
      
    5. 查询所有用户信息。

      通过调用 JdbcTemplate 对象的 query 方法,查询数据库中的所有用户信息,并将查询结果映射为 User 类型的对象列表返回。

      代码如下:

      @Override
      public List<User> selectAllUsers() {
          String sql = "select * from test_springboot";
          return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
      }
      

UserDao.java 文件介绍

UserDao.java 文件通过 UserDao 接口用于定义对用户数据的操作方法。

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

  1. 引用其他类和接口。

    声明当前文件所属的包名为 package com.oceanbase.testspringboot.dao,包含以下接口和类:

    • User 类:用于传递和存储用户数据。
    • List 接口:用于操作查询结果集合。

    代码如下:

    import com.oceanbase.testspringboot.entity.User;
    import java.util.List;
    
  2. 定义 UserDao 接口。

    通过使用 UserDao 接口,定义对用户数据的操作方法。包括插入用户信息、删除用户信息、更新用户信息、根据用户 ID 查询用户信息以及查询所有用户信息等方法。

    代码如下:

    public interface UserDao {
        boolean insertUser(User user);
        boolean deleteById(Long id);
        boolean updateUser(User user);
        User selectUserById(Long id);
        List<User> selectAllUsers();
    }
    

User.java 文件介绍

User.java 文件通过定义 User 类用于表示用户对象。

  1. 声明 User 对象。 声明 User 类包含 id 和 name 两个私有字段,并提供了一个无参构造方法。通过设置和获取 id 和 name 字段的值来操作用户信息。

    代码如下:

    private Long id;
    private String name;
    
    public User() {
    }
    
  2. 创建 User 对象。 定义 User 类的带参构造方法,用于创建一个具有指定 id 和 name 的 User 对象。

    代码如下:

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }
    
  3. 获取和设置 id 和 name 值。 定义 User 类中的四个方法,用于获取和设置 id 和 name 属性的值。 getId 方法用于获取 id 值,setId 方法用于设置 id 值。getName 方法用于获取用户名 name 的值。setName 方法用于设置用户名 name 的值。

    代码如下:

    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
  4. 返回 User 对象的字符串表示形式。

    重写 User 类中的 toString 方法,用于返回 User 对象的字符串表示形式。 定义 @Override 覆盖父类中的同名方法。定义 toString 方法,用于返回 User 对象的字符串表示形式。通过字符串拼接,将 id 和 name 属性的值格式化为一个字符串,返回给调用者 User。

    代码如下:

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
    

TestSpringbootApplication.java 文件介绍

TestSpringbootApplication.java 文件通过 UserDao 接口用于启动 Spring Boot 应用程序。

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

  1. 定义类和接口。

    声明当前文件所属的包名为 com.oceanbase.testspringboot,包含以下接口和类:

    • SpringApplication 类:用于启动 Spring Boot 应用程序。
    • @SpringBootApplication 注解:用于指示该类是 Spring Boot 应用程序的入口点。

    代码如下:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
  2. 定义 TestSpringbootApplication 类。

    使用 SpringBootApplication 注解标识该类是一个 Spring Boot 应用程序的入口类。通过调用 SpringApplication 类的 run 方法,可以启动 Spring Boot 应用程序。

    代码如下:

    @SpringBootApplication
    public class TestSpringbootApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(TestSpringbootApplication.class, args);
        }
    }
    

TestSpringbootApplicationTests.java 文件介绍

TestSpringbootApplicationTests.java 文件通过 UserDao 接口用于启动 Spring Boot 应用程序。

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

  1. 引用其他类和接口。

    声明当前文件所属的包名为 com.oceanbase.testspringboot,包含以下接口和类:

    • UserDao 接口:用于实现了 UserDao 接口中定义的方法。
    • User 类:用于传递和存储用户数据。
    • Test 注解:用于标识测试方法。
    • Autowired 注解:将 JdbcTemplate 对象注入到该类中,用于执行 SQL 语句。
    • SpringBootTest 注解:用于标识该类是一个 Spring Boot 的测试类。
    • JdbcTemplate 类:用于执行 SQL 语句和处理数据库访问。
    • List 接口:用于操作查询结果集合。

    代码如下:

    import com.oceanbase.testspringboot.dao.UserDao;
    import com.oceanbase.testspringboot.entity.User;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.jdbc.core.JdbcTemplate;
    import java.util.List;
    
    
  2. 定义 TestSpringbootApplicationTests 类。

    使用 SpringBootTest 注解标识测试 Spring Boot 应用程序中的功能。通过使用 UserDao 和 JdbcTemplate 对象,对用户数据进行增删改查操作,并输出结果。

    1. 定义对象。

      使用 Autowired 注解自动注入 UserDao 和 JdbcTemplate 对象。

      代码如下:

      @Autowired
      private UserDao userDao;
      @Autowired
      private JdbcTemplate jdbcTemplate; 
      
    2. 定义 contextLoads 方法。

      使用 contextLoads 方法作为测试方法的具体实现。

      1. 删除 test_springboot 表。

        使用 jdbcTemplate.execute 方法执行 SQL 语句 drop table test_springboot,删除名为 test_springboot 的表。

        代码如下:

        try {
              jdbcTemplate.execute("drop table test_springboot");
              System.out.println("test_springboot delete successfully!");
            } 
        
      2. 创建 test_springboot 表。

        使用 jdbcTemplate.execute 方法执行 SQL 语句 create table test_springboot (id int primary key, name varchar(50)),创建名为 test_springboot 的表,包含 id 和 name 两个字段。

        代码如下:

        catch (Exception ignore) {
        
                } finally {
                    jdbcTemplate.execute("create table test_springboot (" +
                            "id int primary key," +
                            "name varchar(50))");
                    System.out.println("test_springboot create successfully!");
                }
        
      3. 插入数据。

        使用 userDao.insertUser 方法向 test_springboot 表中插入 10 条用户数据,id 从 1 到 10,name 为 "insert" + i。

        代码如下:

        for (int i = 1; i <= 10; i++) {
            userDao.insertUser(new User((long) i, "insert" + i));
        }
        
      4. 删除数据。

        使用 userDao.deleteById 方法删除 id 为 1 的用户数据。

        代码如下:

          userDao.deleteById(1L);
        
      5. 更新数据。

        使用 userDao.updateUser 方法更新 id 为 2 的用户数据,将 name 修改为 update。

        代码如下:

        userDao.updateUser(new User(2L, "update"));
        
      6. 查询数据。

        使用 userDao.selectUserById 方法查询 id 为 2 的用户数据,并将结果打印输出。

        代码如下:

        User user = userDao.selectUserById(2L);
        System.out.println("user = " + user);
        
      7. 查询所有数据。

        使用 userDao.selectAllUsers 方法查询 test_springboot 表中的所有用户数据,并将结果打印输出。

        代码如下:

        List<User> userList = userDao.selectAllUsers();
        userList.forEach(System.out::println);
        

完整的代码展示

pom.xml
application.properties
UserDaoImpl.java
UserDao.java
User.java
TestSpringbootApplication.java
TestSpringbootApplicationTests.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.oceanbase</groupId>
    <artifactId>java-oceanbase-springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>java-oceanbase-springboot</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oceanbase</groupId>
            <artifactId>oceanbase-client</artifactId>
            <version>2.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  spring.datasource.driverClassName=com.oceanbase.jdbc.Driver
  spring.datasource.url=jdbc:oceanbase://host:port/schema_name?useSSL=false&useUnicode=true&characterEncoding=utf-8
  spring.datasource.username=user_name
  spring.datasource.password=******
package com.oceanbase.testspringboot.dao.impl;

import com.oceanbase.testspringboot.dao.UserDao;
import com.oceanbase.testspringboot.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository("userDao")
public class UserDaoImpl implements UserDao {
    @Autowired
    private JdbcTemplate jdbcTemplate; //Jdbc connection tool class

    @Override
    public boolean insertUser(User user) {
        String sql = "insert into test_springboot(id,name)values(?,?)";
        Object[] params = {user.getId(), user.getName()};
        return jdbcTemplate.update(sql, params) > 0;
    }

    @Override
    public boolean deleteById(Long id) {
        String sql = "delete from test_springboot where id=?";
        Object[] params = {id};
        return jdbcTemplate.update(sql, params) > 0;
    }

    @Override
    public boolean updateUser(User user) {
        String sql = "update test_springboot set name=? where id=?";
        Object[] params = {user.getName(), user.getId()};
        return jdbcTemplate.update(sql, params) > 0;
    }

    @Override
    public User selectUserById(Long id) {
        String sql = "select * from test_springboot where id=?";
        Object[] params = new Object[]{id};
        return jdbcTemplate.queryForObject(
                sql,
                params,
                new BeanPropertyRowMapper<>(User.class));
    }

    @Override
    public List<User> selectAllUsers() {
        String sql = "select * from test_springboot";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
    }
}

package com.oceanbase.testspringboot.dao;

import com.oceanbase.testspringboot.entity.User;

import java.util.List;


public interface UserDao {
    boolean insertUser(User user);

    boolean deleteById(Long id);

    boolean updateUser(User user);

    User selectUserById(Long id);

    List<User> selectAllUsers();
}
package com.oceanbase.testspringboot.entity;


public class User {
    private Long id;
    private String name;

    public User() {
    }

    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
package com.oceanbase.testspringboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TestSpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestSpringbootApplication.class, args);
    }
}

package com.oceanbase.testspringboot;

import com.oceanbase.testspringboot.dao.UserDao;
import com.oceanbase.testspringboot.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

@SpringBootTest
class TestSpringbootApplicationTests {
    @Autowired
    private UserDao userDao;
    @Autowired
    private JdbcTemplate jdbcTemplate; //Jdbc connection tool class

    @Test
    void contextLoads() {
        try {
            // Use the execute() method to execute SQL statements and delete the user table test_springboot
            jdbcTemplate.execute("drop table test_springboot");
            System.out.println("test_springboot delete successfully!");
        } catch (Exception ignore) {

        } finally {
            // Use the execute() method to execute SQL statements and create user table tests_ user
            jdbcTemplate.execute("create table test_springboot (" +
                    "id int primary key," +
                    "name varchar(50))");
            System.out.println("test_springboot create successfully!");
        }
        //UserDao userDao=new UserDaoImpl();

        //ApplicationContext ioc=new ApplicationContext("/appli");`
        //add
        for (int i = 1; i <= 10; i++) {
            userDao.insertUser(new User((long) i, "insert" + i));
        }
        //delete
        userDao.deleteById(1L);
        //update
        userDao.updateUser(new User(2L, "update"));
        //selectUserById
        User user = userDao.selectUserById(2L);
        System.out.println("user = " + user);
        //query all users
        List<User> userList = userDao.selectAllUsers();
        userList.forEach(System.out::println);
    }

}

相关文档

更多 OceanBase Connector/J 的信息,请参见 OceanBase JDBC 驱动程序

本文目录

前提条件操作步骤步骤一:获取 OceanBase 数据库连接信息步骤二:导入 java-oceanbase-springboot 项目到 IDEA 中步骤三:修改 java-oceanbase-springboot 项目中的数据库连接信息步骤四:运行 java-oceanbase-hibernate 项目项目代码介绍pom.xml 代码介绍application.properties 代码介绍UserDaoImpl.java 文件介绍UserDao.java 文件介绍User.java 文件介绍TestSpringbootApplication.java 文件介绍TestSpringbootApplicationTests.java 文件介绍完整的代码展示相关文档
有帮助
无帮助
反馈
AI

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 基础资源和备案服务由阿里云提供