在 Spring Boot 项目中连接 IBM AS/400 数据库——详细案例教程
文章目录
- 1. 添加 `jt400` 依赖
- 2. 下载 `jt400` 驱动包
- 依赖下载
- 手动下载
- 下载地址:
- 手动下载 JAR 的步骤:
- 3. 配置 application.properties 或 application.yml
- (1)`application.properties`
- (2)`application.yml`
- 4. 数据源配置类(可选)
- 5. 创建 `JDBC` 访问层
- 6. 测试连接
- 7. 启动项目
- 总结
在 Spring Boot 项目中连接 IBM AS/400 数据库(又称 IBM i)需要使用 jt400 驱动。下面是一个完整的步骤和案例,包含包的获取、下载、导入和使用等过程。
1. 添加 jt400 依赖
在 pom.xml 中添加 jt400 的 Maven 依赖。jt400 是一个 JDBC 驱动程序,用于连接 IBM i(AS/400)的数据库。
<dependencies><!-- Spring Boot Starter JDBC --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- jt400 JDBC Driver --><dependency><groupId>net.sf.jt400</groupId><artifactId>jt400</artifactId><version>10.5</version> <!-- 推荐最新版本 --></dependency>
</dependencies>
2. 下载 jt400 驱动包
依赖下载
添加依赖后,使用 Maven 的 mvn install 命令,Maven 会自动下载并引入 jt400 驱动包到你的项目中。
mvn install
手动下载
Maven 会根据 pom.xml 自动从 Maven Central 仓库下载 jt400 的 JAR 包。如果需要手动下载,可以从以下网站进行下载:
下载地址:
-
Maven Central Repository:
- 访问 Maven Central
- 在页面中可以找到各个版本的
jt400JAR 文件,并下载所需的版本。
-
JT400 GitHub 仓库:
- 官方的项目源代码托管在 GitHub 上: JT400 GitHub
手动下载 JAR 的步骤:
- 访问 Maven Central jt400。
- 点击 Download 按钮,下载对应版本的 JAR 文件。
- 如果不使用 Maven 进行管理,可以将下载的 JAR 文件手动添加到项目的库路径中。
3. 配置 application.properties 或 application.yml
(1)application.properties
在 src/main/resources/application.properties 文件中配置数据库连接信息。
# AS/400 数据库配置
spring.datasource.url=jdbc:as400://<AS400_HOST>/<DATABASE>
spring.datasource.username=<USERNAME>
spring.datasource.password=<PASSWORD>
spring.datasource.driver-class-name=com.ibm.as400.access.AS400JDBCDriver# HikariCP Connection Pool 配置 (可选)
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
<AS400_HOST>:IBM AS/400 服务器的 IP 或域名。<DATABASE>:AS/400 数据库的名称。<USERNAME>:连接数据库的用户名。<PASSWORD>:连接数据库的密码。
(2)application.yml
spring:datasource:url: jdbc:as400://<AS400_HOST>;databaseName=<DATABASE_NAME>username: <YOUR_USERNAME>password: <YOUR_PASSWORD>driver-class-name: com.ibm.as400.access.AS400JDBCDriverhikari:maximum-pool-size: 10jpa:hibernate:ddl-auto: noneshow-sql: true
- 替换 <AS400_HOST> 为 AS/400 服务器的 IP 或主机名,
- <DATABASE_NAME> 为你要连接的数据库名称
- <YOUR_USERNAME> 和 <YOUR_PASSWORD> 为你的登录凭证。
4. 数据源配置类(可选)
如果你需要自定义配置数据源,可以在项目中创建一个 DataSourceConfig 类。
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import javax.sql.DataSource;@Configuration
public class DataSourceConfig {@Bean@ConfigurationProperties("spring.datasource")public DataSource dataSource() {return DataSourceBuilder.create().type(HikariDataSource.class).build();}
}
5. 创建 JDBC 访问层
Spring Boot 支持使用 JdbcTemplate 来简化对数据库的操作。你可以创建一个服务类来访问 AS/400 数据库。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;import java.util.List;
import java.util.Map;@Service
public class AS400Service {@Autowiredprivate JdbcTemplate jdbcTemplate;public List<Map<String, Object>> getUsers() {String sql = "SELECT * FROM USERS"; // 假设 USERS 是 AS/400 中的一个表return jdbcTemplate.queryForList(sql);}
}
6. 测试连接
创建一个测试接口来验证数据库连接是否成功。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;@RestController
public class AS400Controller {@Autowiredprivate AS400Service as400Service;@GetMapping("/users")public List<Map<String, Object>> getUsers() {return as400Service.getUsers();}
}
7. 启动项目
使用以下命令启动 Spring Boot 项目:
mvn spring-boot:run
然后访问 http://localhost:8080/users,如果一切配置正确,你将看到从 AS/400 数据库中检索到的数据。
总结
- 添加依赖:通过 Maven 添加
jt400依赖。 - 配置文件:在
application.properties中配置 AS/400 数据库的连接信息。 - 数据源配置(可选):使用自定义数据源配置类进行高级数据源配置。
- 业务逻辑:使用
JdbcTemplate访问数据库。 - 测试:创建 REST API 以验证数据库连接。
这是一个完整的 Spring Boot 连接 AS/400 数据库的案例,可以根据你的实际需求进行扩展和修改。
希望对你有所帮助,若有问题欢迎指正~😊
相关文章:
在 Spring Boot 项目中连接 IBM AS/400 数据库——详细案例教程
文章目录 1. 添加 jt400 依赖2. 下载 jt400 驱动包依赖下载手动下载下载地址:手动下载 JAR 的步骤: 3. 配置 application.properties 或 application.yml(1)application.properties(2)application.yml 4. 数…...
VUE + NODE 历史版本安装
以node 12.20.0为例子,想下载哪个版本,后面写哪个版本 https://registry.npmmirror.com/binary.html?pathnode/v12.20.0/ 安装国内镜像7.1.0 cnpm npm install -g cnpm7.1.0 -g --registryhttps://registry.npmmirror.com 安装vue脚手架4.5.15 cnpm …...
git reset 几点疑问
疑问:使用 git reset --hard <commit-hash-from-branch-B> 将工作区状态reset为其他branch的某点。 如果当前工作区的分支(比如 branch A)上使用 git reset --hard 将其状态重置为另一个分支(比如 branch B)的某…...
Rust Windows下编译 静态链接VCRuntime140.dll
Rust 编译出来的exe默认动态链接VC运行库,分发电脑上需要安装有Microsoft Visual C Redistributable for Visual Studio 2015运行库。 编译时能静态链接进去,就省去客户端未安装运行库的问题。方法如下: 只需在当前根目录下新建.cargo\config.toml&#…...
从“天宫课堂”到人工智能:中国少儿编程的未来在哪里?
近日,中国载人航天“天宫课堂”第三次开讲,激发了全国数百万青少年对科技的热情。从航天技术到人工智能,科技的快速发展正不断改变我们的生活,也让越来越多的家长意识到,未来属于那些掌握编程和创新思维的孩子。与其让…...
ARM base instruction -- blr
BLR Branch with Link to Register calls a subroutine at an address in a register, setting register X30 to PC4. 带寄存器链接的分支在寄存器中的某个地址调用一个子程序,将寄存器 X30 (lr) 设置为 PC4。 BLR <Xn> BLR 跳转到reg内容地址,…...
宠物猫领养馆会员管理系统---附源码72579
目录 1 绪论 1.1 课题目的与意义 1.2国内外研究现状 1.3论文结构与章节安排 1.4 express框架介绍 2 宠物猫领养馆会员管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 …...
驾驶员注意力分神状态检测系统源码分享
驾驶员注意力分神状态检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …...
基于less和scss 循环生成css
效果 一、less代码 复制代码 item-count: 12; // 生成多少个 .item 类.item-loop(n) when (n > 0) {.icon{n} {background: url(../../assets/images/menu/icon{n}.png) no-repeat;background-size: 100% 100%;}.item-loop(n - 1);}.item-loop(item-count);二、scss代码 f…...
opencv之Canny边缘检测
文章目录 前言1.应用高斯滤波去除图像噪声2.计算梯度3.非极大值抑制4.应用双阈值确定边缘5.Canny函数及使用 前言 Canny边缘检测是一种流行的边缘检测算法,用于检测图像中的边缘。它通过一系列步骤将图像中的像素边缘突出显示出来,主要分为以下几个步骤…...
springBoot 集成https
springBoot 集成https 1、springBoot默认的证书格式 pring Boot 需要 .p12 或 .jks 格式的证书。如果你只有 .pem 和 .key 文件,可以使用 openssl 工具将它们转换成 .p12 文件 2、转换.p12 我的证书文件如下,需要转换 2.1 下载openssl https://slpr…...
数据库连接池与Druid【后端 16】
数据库连接池与Druid 在现代软件开发中,数据库连接池作为一种关键的技术手段,被广泛用于提升数据库访问的效率和稳定性。本文将深入探讨数据库连接池的概念、常见实现,并重点介绍我国阿里集团开源的数据库连接池——Druid,以及如何…...
C#使用Access数据库使用总结
话说这Access数据库确实是有点年代了,前面在深圳的一家放射医疗公司,数据库用的Access,后面在我的建议下,换成了SQLite。用SQLite多舒服,不用装Runtime,还可以用EF。Access得装Runtime,也用不了…...
使用Dataherald组件进行数据分析:从安装到查询的完整指南
使用Dataherald组件进行数据分析:从安装到查询的完整指南 引言 在当今数据驱动的世界中,能够快速、准确地从数据中获取洞察变得越来越重要。Dataherald是一个强大的工具,它可以帮助开发者和数据分析师更轻松地进行数据查询和分析。本文将详…...
sqlx1.3.4版本的问题
sqlx1.3.4版本存在问题,在调用sqlx的Select方法时,如果传入的dest是一个slice且slice不为空,查询结果将会追加在这个slice已有的元素后面。这位用户认为这个行为是“a little surprising”的,且与json 反序列化的表现不一致&#…...
Rust 编译器使用的 C++ 编译器吗?
Rust编译器并不直接使用C编译器,但它们之间可以存在交互,尤其是在Rust与C进行混合编程时。以下是关于Rust编译器和C编译器之间关系的详细解释: 1. Rust编译器的选择 Rust是一种现代化的系统级编程语言,它需要一个可靠的编译器来…...
Python计算机视觉 第10章-OpenCV
Python计算机视觉 第10章-OpenCV OpenCV 是一个C 库,用于(实时)处理计算视觉问题。实时处理计算机视觉的 C 库,最初由英特尔公司开发,现由 Willow Garage 维护。OpenCV 是在 BSD 许可下发布的开源库,这意味…...
多层感知机 (Multilayer Perceptron, MLP)
多层感知机 (Multilayer Perceptron, MLP) 通俗易懂算法 多层感知机(Multilayer Perceptron,MLP)是一种前馈人工神经网络。它的主要特点是由多层神经元(或节点)组成,包括至少一个隐藏层。MLP 是监督学习的…...
reg和wire的区别 HDL语言
文章目录 数据类型根本区别什么时候要定义wire小结 数据类型 HDL语言有三种数据类型:寄存器数据类型(reg)、线网数据类型(wire)、参数数据类型(parameter)。 根本区别 reg: 寄存器…...
前置声明和头文件之间的关系 问题
出现这些问题的原因是 ORB_SLAM3::MultiGraph 被前置声明了,但在使用的时候,编译器并没有看到 MultiGraph 类的完整定义。前置声明只能用于指针和引用,但如果要访问其成员函数或变量,必须包含完整的类定义。 解决方案步骤&#x…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
