SpringBatch 连接 seekdb 示例 程序
本文将介绍如何使用 SpringBatch 框架和 seekdb 构建一个应用程序,实现创建表、插入数据和查询数据等基本操作。
点击下载 java-oceanbase-springbatch 示例工程
前提条件
- 您已安装 seekdb。
- 您已安装 JDK 1.8 和 Maven。
- 您已安装 IntelliJ IDEA。
本文档运行代码使用的工具是 IntelliJ IDEA 2021.3.2 (Community Edition) 版本,您也可以根据个人喜好选择适合自己的工具运行示例代码。
操作步骤
本文中给出的操作步骤是基于 Windows 环境生成。如果您使用的是其他操作系统环境或编译器,那么操作步骤可能会略有不同。
- 获取 seekdb 连接串。
- 导入
java-oceanbase-springbatch项目到 IDEA 中。 - 修改
java-oceanbase-springbatch项目中的数据库连接信息。 - 运行
java-oceanbase-springbatch项目。
步骤一:获取 seekdb 连接串
-
联系 seekdb 部署人员或者管理员获取相应的数据库连接串。
mysql -hxx.xx.xx.xx -P2881 -uroot -p**** -A -
根据已部署的 seekdb 填写下面 URL 的对应信息。
信息在
application.properties文件中需要这里的 URL 信息。jdbc:oceanbase://host:port/schema_name?user=$user_name&password=$password&characterEncoding=utf-8参数说明:
host:提供 seekdb 的连接 IP。应该被实际的 IP 替换,也可以使用本地 IP 及 127.0.0.1。port:提供 seekdb 接端口。应该被实际的端口替换,默认是 2881,在部署 seekdb 时可自定义。schema_name:需要访问的 Schema 名称。user_name:通过-u参数指定,格式为 用户。默认用户为root。password:提供账户密码。characterEncoding:提供字符编码。
更多 URL 参数说明信息,请参见 数据库 URL。
步骤二:导入 java-oceanbase-springbatch 项目到 IDEA 中
-
打开 IntelliJ IDEA,选择 File > Open... 选项。

-
在弹出的 Open File or Project 窗口中,选择对应的项目文件,单击 OK 完成项目文件导入。
-
IntelliJ IDEA 将会自动识别项目中的各类文件,并在 Project 工具窗口中,可以查看项目的目录结构、文件列表、模块列表、依赖关系等信息。Project 工具窗口通常位于 IntelliJ IDEA 界面的最左侧,默认情况下是打开的。如果 Project 工具窗口被关闭了,可以通过点击菜单栏中的 View > Tool Windows > Project 或者使用快捷键 Alt + 1 来重新打开它。
信息当使用 IntelliJ IDEA 导入项目时,IntelliJ IDEA 会自动检测项目中的 pom.xml 文件,并根据文件中描述的依赖关系自动下载所需的依赖库,并将它们添加到项目中。
-
查看项目情况。

步骤三:修改 java-oceanbase-springbatch 项 目中的数据库连接信息
根据 步骤一:获取 seekdb 连接串 中的信息修改 application.properties 文件中的数据库连接信息。
示例如下:
- 数据库驱动的名称为:
com.mysql.cj.jdbc.Driver - seekdb 的 IP 地址为
10.10.10.1。 - 访问端口使用的是 2881。
- 需要访问的 Schema 名称为
test。 - 连接账户是
root。 - 密码是
******。
示例代码如下:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://10.10.10.1:2881/test?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=******
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.batch.job.enabled=false
logging.level.org.springframework=INFO
logging.level.com.example=DEBUG
步骤四:运行 java-oceanbase-springbatch 项目
-
运行
AddDescPeopleWriterTest.java文件。- 在项目结构中找到 src > test > java 中找到
AddDescPeopleWriterTest.java文件。 - 在工具菜单栏中选择 Run > Run... > AddDescPeopleWriterTest.testWrite,或直接单击右上角绿色三角形运行。
- 通过 IDEA 的控制台来查看项目的日志信息和输出结果。
people_desc 表中的数据:
PeopleDESC [name=John, age=25, desc=This is John with age 25]
PeopleDESC [name=Alice, age=30, desc=This is Alice with age 30]
Batch Job execution completed. - 在项目结构中找到 src > test > java 中找到
-
运行
AddPeopleWriterTest.java文件。- 在项目结构中找到 src > test > java 中找到
AddDescPeopleWriterTest.java文件。 - 在工具菜单栏中选择 Run > Run... > AddPeopleWriterTest.testWrite,或直接单击右上角绿色三角形运行。
- 通过 IDEA 的控制台来查看项目的日志信息和输出结果。
people 表中的数据:
People [name=zhangsan, age=27]
People [name=lisi, age=35]
Batch Job execution completed. - 在项目结构中找到 src > test > java 中找到
常见问题
1. 连接超时
如果遇到连接超时问题,可以在 JDBC URL 中配置连接超时参数:
jdbc:mysql://host:port/database?connectTimeout=30000&socketTimeout=60000
2. 字符集问题
为确保正确的字符编码,在 JDBC URL 中设置正确的字符集参数:
jdbc:mysql://host:port/database?characterEncoding=utf8&useUnicode=true
3. SSL 连接
要启用与 seekdb 的 SSL 连接,在 JDBC URL 中添加以下参数:
jdbc:mysql://host:port/database?useSSL=true&requireSSL=true
4. 账号密码中的特殊字符
如果用户名或密码包含特殊字符(如 #),需要进行 URL 编码:
String encodedPassword = URLEncoder.encode(password, "UTF-8");
使用 MySQL Connector/J 8.x 时,确保账号密码不包含井号(#)。否则,可能会遇到连接错误。
项目代码介绍
点击 java-oceanbase-springbatch 下载项目代码,这是一个名为 java-oceanbase-springbatch 的压缩包。
解压后,得到一个名为 java-oceanbase-springbatch 的文件夹。目录结构如下所示:
│ pom.xml
│
├─.idea
│
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─oceanbase
│ │ │ └─example
│ │ │ └─batch
│ │ │ │──BatchApplication.java
│ │ │ │
│ │ │ ├─config
│ │ │ │ └─BatchConfig.java
│ │ │ │
│ │ │ ├─model
│ │ │ │ ├─People.java
│ │ │ │ └─PeopleDESC.java
│ │ │ │
│ │ │ ├─processor
│ │ │ │ └─AddPeopleDescProcessor.java
│ │ │ │
│ │ │ └─writer
│ │ │ ├─AddDescPeopleWriter.java
│ │ │ └─AddPeopleWriter.java
│ │ │
│ │ └─resources
│ │ └─application.properties
│ │
│ └─test
│ └─java
│ └─com
│ └─oceanbase
│ └─example
│ └─batch
│ ├─config
│ │ └─BatchConfigTest.java
│ │
│ ├─processor
│ │ └─AddPeopleDescProcessorTest.java
│ │
│ └─writer
│ ├─AddDescPeopleWriterTest.java
│ └─AddPeopleWriterTest.java
│
└─target
文件说明:
pom.xml:Maven 项目的配置文件,包含了项目的依赖、插件、构建等信息。.idea:IDE(集成开发环境)中使用的目录,用于存储项目相关的配置信息。src:通常用于表示项目中存放源代码的目录。main: 存放主要的源代码和资源文件的目录。java: 存放 Java 源代码的目录。com.oceanbase.example.batch:包名。BatchApplication.java:这是应用程序的入口类,包含了应用程序的主方法。config:这是配置类文件夹,包含了应用程序的配置类。BatchConfig.java:这是应用程序的配置类,用于配置应用程序的一些属性和行为。model