您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)如何使用Spring通過JPA連接到Db2的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)建項目
首先,確定您計劃使用 IBM Cloud 開發(fā)者工具還是 Spring Initializr 創(chuàng)建項目,然后按照各自的說明進(jìn)行操作。
IBM Cloud 開發(fā)者工具
如果您使用 IBM Cloud 開發(fā)者工具創(chuàng)建項目,那么使用 dev 插件創(chuàng)建新的 Spring 微服務(wù)。
ibmcloud dev create
1.選擇 Backend Service / Web App。
2.選擇 Java – Spring。
3.選擇 Java Microservice with Spring (Microservice)。
4.指定項目名稱(例如 MyDb2JPAProject)。
5.拒絕向應(yīng)用程序添加服務(wù) (n)。
6.選擇合適的工具鏈,如果不確定,選擇 None("No Devops")。
7.切換到應(yīng)用程序目錄。
8.將 Spring JPA 啟動器添加到 pom.xml 中的 dependencies 元素中:
<dependency> <groupId>org.springframework.boot</groupId>> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
Spring Initializr
如果您使用 Spring Initializr 創(chuàng)建項目,那么使用瀏覽器訪問 https://start.spring.io。
1.選擇您的 Spring Boot 級別(目前默認(rèn)版本為 2.0.4)。
2.指定項目工件名稱(例如 mydb2jpaproject)。
3.添加 Web 依賴項。
4.添加 JPA 依賴項。
5.選擇 Generate Project,然后下載應(yīng)用程序包。
6.解壓程序包。
7.切換到解壓目錄。
將db2jcc4.jar 添加到項目中
Maven 中不提供 Db2 JDBC Driver (JCC),所以您必須直接從 IBM 下載,并將其添加到本地 maven 倉庫。
從 Db2 JDBC 驅(qū)動程序版本和下載中選擇并下載適合您的驅(qū)動程序包。
解壓此程序包,并將 db2jcc4.jar 文件保存到項目根目錄下的一個新的 lib 目錄中。
在此 lib 目錄中,將Jar 作為 Maven 包添加,并根據(jù)您下載的程序包相應(yīng)地更改版本:
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 元素,并相應(yīng)地更改版本以實(shí)現(xiàn)匹配:
<dependency> <groupId>com.ibm.db2.jcc</groupId> <artifactId>db2jcc4</artifactId> <version>4.24.92</version> </dependency>
創(chuàng)建示例表
對于本快速指南,我們只使用一個數(shù)據(jù)庫和一個表。
使用 Db2 命令提示符連接到 Db2 實(shí)例,并發(fā)出以下 SQL 語句創(chuàng)建 things 表并填充一些數(shù)據(jù):
create table things (id int, name varchar(255)) insert into things (id,name) values (1,'fish'),(2,'wibble'),(3,'stiletto')
如果您為此表使用不同的名稱,就需要記住這個名稱,以便稍后創(chuàng)建 JPA 類時使用。
為 Db2 實(shí)例配置 Spring 數(shù)據(jù)
Spring 需要被告知如何與數(shù)據(jù)庫進(jìn)行通信,與其他 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 實(shí)例的位置和憑證相匹配。
創(chuàng)建 JPA 類
在項目中,找到 Spring Boot 主應(yīng)用程序類。
對于通過 Spring Initializr 創(chuàng)建的項目,主應(yīng)用程序類以創(chuàng)建項目時提供的工件名稱來命名。例如,如果通過 com.example 包命名工件 demo,您將在 src/main/java/com/example/DemoApplication.java 目錄下找到主類。
對于通過 IBM Cloud 開發(fā)者工具創(chuàng)建的項目,主應(yīng)用程序類始終位于 src/main/java/application/SBApplication.java 目錄下。
在與應(yīng)用程序類相同的目錄下,為 JPA 類 jpa 創(chuàng)建一個目錄。
在 jpa 目錄下,創(chuàng)建表示表行的類。該類應(yīng)該與您之前創(chuàng)建的表使用相同的名稱。
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); } }
在與該類相同的目錄下,創(chuàng)建用于訪問數(shù)據(jù)的 Repository 類。接口用您剛才創(chuàng)建的類的類型。
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 類的簡單調(diào)用添加到 RestController
對于通過 Spring Initializr 創(chuàng)建的項目,您必須創(chuàng)建自己的 RestController 類。在 jpa 目錄旁創(chuàng)建一個控制器目錄,然后在該目錄下創(chuàng)建 RestController 類。
對于通過 IBM Cloud 開發(fā)者工具創(chuàng)建的項目,在 src/main/java/application/rest/v1/Example.java 中已為您提供 RestController 示例。
RestController 為您的應(yīng)用程序提供 REST 端點(diǎn)。使用 @Autowired 將倉庫注入到 RestController 中,然后添加一個可以返回表中數(shù)據(jù)的簡單端點(diǎn):
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); } }
您可能需要為之前創(chuàng)建的 Things 和 Repository 類添加導(dǎo)入功能。
運(yùn)行該示例
您可以像運(yùn)行任何其他 Spring Boot 應(yīng)用程序一樣運(yùn)行該示例。
mvn spring-boot:run
然后,您可以訪問此端點(diǎn),查看它查詢數(shù)據(jù)庫和檢索信息的情況。
$ curl http://localhost:8080/test [Table data..., Things[id=1, name='fish'], Things[id=2, name='wibble'], Things[id=3, name='stiletto']]
感謝各位的閱讀!關(guān)于“如何使用Spring通過JPA連接到Db2”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。