内容简介:在本教程中,您将学习如何使用 Spring 通过 JPA 连接到 DB2 实例。首先,确定您计划使用 IBM Cloud 开发者工具还是 Spring Initializr 创建项目,然后按照各自的说明进行操作。
在本教程中,您将学习如何使用 Spring 通过 JPA 连接到 DB2 实例。
免费试用 IBM Cloud
利用IBM Cloud Lite 快速轻松地构建您的下一个应用程序。您的免费帐户从不过期,而且您会获得 256 MB 的 Cloud Foundry 运行时内存和包含 Kubernetes 集群的 2 GB 存储空间。了解所有细节并确定如何开始。如果您不熟悉 IBM Cloud,请查阅 developerWorks 上的 IBM Cloud Essentials 课程 。
前提条件
创建项目
首先,确定您计划使用 IBM Cloud 开发者 工具 还是 Spring Initializr 创建项目,然后按照各自的说明进行操作。
IBM Cloud 开发者工具
如果您使用 IBM Cloud 开发者工具创建项目
,那么使用 dev
插件创建新的 Spring 微服务。
ibmcloud dev create
- 选择 Backend Service / Web App 。
- 选择 Java – Spring 。
- 选择 Java Microservice with Spring (Microservice) 。
-
指定项目名称(例如
MyDb2JPAProject
)。 -
拒绝向应用程序添加服务 (
n
)。 -
选择合适的工具链,如果不确定,选择
None
("No Devops")。 - 切换到应用程序目录。
-
将 Spring JPA 启动器添加到 pom.xml 中的
dependencies
元素中:<dependency> <groupId>org.springframework.boot</groupId>> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
Spring Initializr
如果您使用 Spring Initializr 创建项目
,那么使用浏览器访问 https://start.spring.io
。
-
选择您的 Spring Boot 级别(目前默认版本为
2.0.4
)。 -
指定项目工件名称(例如
mydb2jpaproject
)。 -
添加
Web
依赖项。 -
添加
JPA
依赖项。 - 选择 Generate Project ,然后下载应用程序包。
- 解压程序包。
- 切换到解压目录。
将 db2jcc4.jar 添加到项目中
Maven 中不提供 DB2 JDBC Driver (JCC),所以您必须直接从 IBM 下载,并将其添加到本地 maven 仓库。
- 从 DB2 JDBC 驱动程序版本和下载 中选择并下载适合您的驱动程序包。
- 解压此程序包,并将 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:
<repositories> <repository> <id>repo</id> <url>file://${project.basedir}/lib</url> </repository> </repositories>
-
将依赖添加到 pom.xml 中的
dependency
元素,并相应地更改版本以实现匹配:<dependency> <groupId>com.ibm.db2.jcc</groupId> <artifactId>db2jcc4</artifactId> <version>4.24.92</version> </dependency>
创建示例表
对于本快速指南,我们只使用一个数据库和一个表。
使用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 目录下。
-
对于通过 Spring Initializr
创建的项目
,主应用程序类以创建项目时提供的工件名称来命名。例如,如果通过
-
在与应用程序类相同的目录下,为 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<Things, Long> { List<Things> findByName(String name); Iterable<Things> 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<String> example() { List<String> list = new ArrayList<>(); list.add("Table data..."); for(Things things: repo.findAll()){ list.add(things.toString()); } return new ResponseEntity<String>(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 实例。
参考资料
本文翻译自 DB2 via JPA on Spring (2018-11-30)。
以上所述就是小编给大家介绍的《在 Spring 上通过 JPA 连接 DB2》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 通过http tunnel连接mysql
- 8.通过Python连接Docker进行编程
- JSP通过Tomcat连接MySQL的实现
- 计算机通过串口连接Arduino控制LED灯
- 通过Java连接mysql对反斜杠“\”转义的测试
- 通过MSF使用SMB端口远程连接目标的技巧
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Unreal Engine 4 Scripting with C++ Cookbook
Sherif, William、Stephen Whittle / 2016-10-24
Unreal Engine 4 (UE4) is a complete suite of game development tools made by game developers, for game developers. With more than 100 practical recipes, this book is a guide showcasing techniques to us......一起来看看 《Unreal Engine 4 Scripting with C++ Cookbook》 这本书的介绍吧!