spring 数据库 链接db2_实例讲解使用Spring通过JPA连接到Db2

前提条件

Maven

一个拥有访问凭证的 Db2 实例:

IBM Cloud

本地

Java JDK

IBM Cloud 开发者工具(可选)

创建项目

首先,确定您计划使用 IBM Cloud 开发者工具还是 Spring Initializr 创建项目,然后按照各自的说明进行操作。

IBM Cloud 开发者工具

如果您使用 IBM Cloud 开发者工具创建项目,那么使用 dev 插件创建新的 Spring 微服务。

ibmcloud dev create

1.选择 Backend Service / Web App。

2.选择 Java – Spring。

3.选择 Java Microservice with Spring (Microservice)。

4.指定项目名称(例如 MyDb2JPAProject)。

5.拒绝向应用程序添加服务 (n)。

6.选择合适的工具链,如果不确定,选择 None("No Devops")。

7.切换到应用程序目录。

8.将 Spring JPA 启动器添加到 pom.xml 中的 dependencies 元素中:

org.springframework.boot>

spring-boot-starter-data-jpa

Spring Initializr

如果您使用 Spring Initializr 创建项目,那么使用浏览器访问 https://start.spring.io。

1.选择您的 Spring Boot 级别(目前默认版本为 2.0.4)。

2.指定项目工件名称(例如 mydb2jpaproject)。

3.添加 Web 依赖项。

4.添加 JPA 依赖项。

5.选择 Generate Project,然后下载应用程序包。

6.解压程序包。

7.切换到解压目录。

将db2jcc4.jar 添加到项目中

Maven 中不提供 Db2 JDBC Driver (JCC),所以您必须直接从 IBM 下载,并将其添加到本地 maven 仓库。

解压此程序包,并将 db2jcc4.jar 文件保存到项目根目录下的一个新的 lib 目录中。

在此 lib 目录中,将Jar 作为 Maven 包添加,并根据您下载的程序包相应地更改版本:

mvn install:install-file -DlocalRepositoryPath=lib -DcreateChecksum=true -Dpackaging=jar -Dfile=./lib/db2jcc4.jar -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc4 -Dversion=4.24.92

将 lib 目录作为 Maven 仓库添加到 pom.xml:

repo

file://${project.basedir}/lib

将依赖添加到 pom.xml 中的 dependency 元素,并相应地更改版本以实现匹配:

com.ibm.db2.jcc

db2jcc4

4.24.92

创建示例表

对于本快速指南,我们只使用一个数据库和一个表。

使用 Db2 命令提示符连接到 Db2 实例,并发出以下 SQL 语句创建 things 表并填充一些数据:

create table things (id int, name varchar(255))

insert into things (id,name) values (1,'fish'),(2,'wibble'),(3,'stiletto')

如果您为此表使用不同的名称,就需要记住这个名称,以便稍后创建 JPA 类时使用。

为 Db2 实例配置 Spring 数据

Spring 需要被告知如何与数据库进行通信,与其他 Spring 配置一样,这些信息在 application.properties(或 application.yaml)文件中(位于 src/main/resources/application.properties)。

将以下属性添加到 application.properties 文件:

spring.datasource.url=jdbc:db2://mydb2host:50000/mydb2databasename

spring.datasource.username=mydb2username

spring.datasource.password=mydb2password

记得更改这些值,以便与您的 Db2 实例的位置和凭证相匹配。

创建 JPA 类

在项目中,找到 Spring Boot 主应用程序类。

对于通过 Spring Initializr 创建的项目,主应用程序类以创建项目时提供的工件名称来命名。例如,如果通过 com.example 包命名工件 demo,您将在 src/main/java/com/example/DemoApplication.java 目录下找到主类。

对于通过 IBM Cloud 开发者工具创建的项目,主应用程序类始终位于 src/main/java/application/SBApplication.java 目录下。

在与应用程序类相同的目录下,为 JPA 类 jpa 创建一个目录。

在 jpa 目录下,创建表示表行的类。该类应该与您之前创建的表使用相同的名称。

import javax.persistence.Entity;

import javax.persistence.Id;

@Entity

public class Things {

@Id

private Long id;

private String name;

public Things(){

}

@Override

public String toString() {

return String.format("Things[id=%d, name='%s']", id, name);

}

}

在与该类相同的目录下,创建用于访问数据的 Repository 类。接口用您刚才创建的类的类型。

import java.util.List;

import org.springframework.data.repository.CrudRepository;

public interface Repository extends CrudRepository

{

List findByName(String name);

Iterable findAll();

}

将 JPA 类的简单调用添加到 RestController

对于通过 Spring Initializr 创建的项目,您必须创建自己的 RestController 类。在 jpa 目录旁创建一个控制器目录,然后在该目录下创建 RestController 类。

对于通过 IBM Cloud 开发者工具创建的项目,在 src/main/java/application/rest/v1/Example.java 中已为您提供 RestController 示例。

RestController 为您的应用程序提供 REST 端点。使用 @Autowired 将仓库注入到 RestController 中,然后添加一个可以返回表中数据的简单端点:

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.http.HttpStatus;

import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;

import java.util.List;

@RestController

public class Example {

@Autowired

Repository repo;

@RequestMapping("test")

public @ResponseBody ResponseEntity example() {

List list = new ArrayList<>();

list.add("Table data...");

for(Things things: repo.findAll()){

list.add(things.toString());

}

return new ResponseEntity(list.toString(), HttpStatus.OK);

}

}

您可能需要为之前创建的 Things 和 Repository 类添加导入功能。

运行该示例

您可以像运行任何其他 Spring Boot 应用程序一样运行该示例。

mvn spring-boot:run

然后,您可以访问此端点,查看它查询数据库和检索信息的情况。

$ curl http://localhost:8080/test

[Table data..., Things[id=1, name='fish'], Things[id=2, name='wibble'], Things[id=3, name='stiletto']]

总结

通过使用 Spring 自动配置和 Spring Boot 属性,Spring Boot 能够使我们以 Spring 原生方式轻松地配置和使用 Db2 实例。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值