使用JDBC操作SAP雲平臺上的HANA資料庫
本文假設您對JDBC(Java Database Connectivity)有最基本的瞭解。您也可以將其同ADBC(ABAP Database Connectivity)做對比,細節請參考我的部落格ADBC and JDBC
這篇文章分為兩部分,第一部分內容:
- 介紹如何在SAP Cloud Platform(雲平臺)上建立一個HANA資料庫例項
- 開發一個Java應用,部署到SAP雲平臺上。該Java應用使用JDBC操作同樣處於SAP雲平臺上的HANA資料庫。
第二部分內容:
開發一個Java應用,部署在位於Corporate Network的On-Premise系統裡。該Java應用通過Cloud Connector訪問位於SAP雲平臺上的HANA例項。我的前一篇公眾號文章 使用Java+SAP雲平臺+SAP Cloud Connector呼叫ABAP On-Premise系統裡的函式 介紹了部署在Internet Network上的應用如何訪問Corporate Network內的On-Premise系統上的服務,而本文將要介紹的場景則反其道而行之:部署在On-Premise上的Java應用訪問Internet Network上的SAP雲平臺的HANA資料庫。
本文介紹的Java應用的全部原始碼在我的github上:
建立SAP雲平臺上的HANA資料庫例項
-
登陸SAP雲平臺Cockpit,建立一個新的HANA資料庫例項:
設定資料庫ID和System user的密碼。這裡我設定的資料庫ID為hana01, 後面會使用到。
建立成功後,資料庫例項狀態變為STARTED,可以把其Development Tools的連結加到收藏夾裡,後面也會用到。
至此這個位於SAP雲平臺上的HANA資料庫例項已經可用了。下一步就是開發Java程式通過JDBC訪問它。
使用JDBC訪問HANA資料庫
將我github上的Java應用import到Eclipse,如下圖所示:
應用主要分三個檔案:
-
Person.java
定義了Person模型,只包含id,firstName和lastName三個成員,以及對應的getter和setter方法,即所謂的POJO(Plain Old Java Object )。POJO這個名字用來強調它是一個普通Java物件,沒有遵從任何特定的Java約定或框架(如EJB)。 -
PersonDAO.java
顧名思義: DAO - Data Access Object。通過JDBC連線HANA資料庫例項,建立名為T_PERSONS的資料庫表,已經往表裡插入資料的邏輯都寫在這個DAO類裡。 -
PersistenceWithJDBCServlet.java
一個簡單的通過Servlet實現的UI,用於接受使用者輸入並呼叫PersonDAO將輸入傳送到HANA資料庫例項。
JDBC資料庫DataSource例項的獲取通過JNDI完成,該例項作為輸入引數傳入到DAO建構函式,所有接下來的JDBC操作均通過該DataSource進行。
這個DefaultDB的配置位於web.xml:
將該應用部署到SAP雲平臺,應用名為jerryjdbc。
此時僅僅通過上圖web.xml的配置,Java應用還無法知道在SAP雲平臺上到底要操作哪個資料庫例項。
為此我們需要將jerryjdbc這個應用同第一步建立的HANA資料庫例項hana01繫結起來。該繫結通過下圖的Data Source bingdings頁面建立:
繫結成功後,即可通過Servlet UI提供的簡易介面,向HANA資料庫例項裡插入一個Person記錄 Jerry Wang。
在手機上訪問該資料庫例項,能看到剛剛插入的Jerry Wang。
On-Premise系統應用連線Internet Network上的資料庫例項
前文介紹的Java應用和HANA資料庫例項均位於SAP雲平臺。我的前一篇公眾號文章 使用Java+SAP雲平臺+SAP Cloud Connector呼叫ABAP On-Premise系統裡的函式 介紹了部署在Internet Network上的應用如何訪問Corporate Network上的服務,現在我們試著把訪問方向翻轉:現在我把Java應用部署在Corporate Network裡,比如SAP成都研究院機房的一臺伺服器上,讓該Java應用去連線SAP雲平臺上的HANA資料庫例項。
同樣的,這裡再次需要使用到Cloud Connector。
配置Cloud Connector完成從On-Premise系統到Cloud的連線
在SAP雲平臺建立另一個HANA資料庫例項,取名為jerrydemo。然後登入Cloud Connector,點選標籤On-Premise to Cloud,建立一個新的Service Channels:
將新建的資料庫例項jerrydemo分配到這個新建的Channel去:
建立成功如下圖。注意生成的埠號32215,後續會使用。
修改On-Premise系統上Java server的配置,讓其指向SAP雲平臺的資料庫例項
Java應用的程式碼無需做任何調整,僅需更改Server配置。修改Servers資料夾下的檔案connection.properties, 明細如下,目的就是將該Server的資料庫連線指向Cloud Connector上剛剛配置的Service Channel,通過Cloud Connector作為橋樑連線到SAP雲平臺上的HANA資料庫。
javax.persistence.jdbc.url: 指向的localhost:32215即Cloud Connector上配置的Service Channel,該Channel我分配的HANA資料庫例項的ID為jerrydemo。currentschema=SYSTEM,意為接下來我通過JDBC建立的資料庫表會分配到SYSTEM schema下。
javax.persistenc.jdbc.user / password: 填入jerrydemo這個資料庫例項的訪問使用者名稱和密碼。
至此所有配置完成。
啟動On-Premise系統上的localhost伺服器,插入兩條資料:
開啟SAP雲平臺上的HANA Development Tool連線,從SYSTEM這個Schema下能觀察到通過剛才執行在On-Premise系統上的Web應用插入的兩條記錄,說明從On-Premise系統寫入SAP雲平臺資料庫的嘗試成功。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2154716/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Eclipse連線SAP雲平臺上的HANA資料庫例項Eclipse資料庫
- 使用 SSL 加密的 JDBC 連線 SAP HANA 資料庫加密JDBC資料庫
- JDBC + SAP雲平臺 = 執行在雲端的資料庫應用JDBC資料庫
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- 如何在 SAP BTP Java 應用裡使用 SAP HANA 資料庫Java資料庫
- JPA + EclipseLink + SAP雲平臺 = 執行在雲端的資料庫應用Eclipse資料庫
- SAP HANA Cloud 學習教程之二: 如何往SAP BTP 上 HANA Cloud 資料庫表裡插入資料Cloud資料庫
- 如何使用 Node.js 訪問 SAP HANA Cloud 資料庫裡的資料Node.jsCloud資料庫
- 如何在 SAP BTP 平臺上啟用 HANA Cloud 服務Cloud
- 如何在SAP雲平臺上使用MongoDB服務MongoDB
- 使用SAP雲平臺的destination消費Internet上的OData service
- 讓SAP雲平臺上的Web應用使用destination服務Web
- 使用SAP iRPA Studio建立的本地專案,如何部署到SAP雲平臺上?
- 如何使用SAP HANA Vora規劃HANA大資料戰略?LH大資料
- 在SAP HANA Express Edition裡建立資料庫表Express資料庫
- 關於 SAP HANA 資料庫的死鎖問題(deadlock)資料庫
- 在 Excel 裡使用 ODBC 讀取 SAP BTP 平臺上 CDS view 的資料ExcelView
- SAP雲平臺上的SSO Principal Propagation設定
- 重新定義資料庫雲平臺—沃趣科技資料庫雲版圖資料庫
- SAP雲平臺的Document Service
- 資料庫平臺資料庫
- 使用cf curl檢視SAP雲平臺上的應用各項明細
- 使用 SAP HANA Virtual Table 連線外部資料來源
- 使用nodejs應用查詢SAP HANA Express Edition裡的資料NodeJSExpress
- 使用PHP應用查詢SAP HANA Express Edition裡的資料PHPExpress
- 使用SAP雲平臺 + JNDI訪問Internet Service
- DBA福利-資料庫線上實訓平臺資料庫
- SAP HANA資料建模祕籍XV
- 全平臺資料(資料庫)管理工具 DataCap 管理 Rainbond 上的所有資料庫資料庫AI
- 還在寫SQL做SAP二開?通過RFC呼叫NetWeaver,讓HANA資料庫操作更可靠SQL資料庫
- SAP雲平臺對Kubernetes的支援
- 最簡單的SAP雲平臺開發教程 - 如何開發UI5應用並執行在SAP雲平臺上UI
- 【Mybatis原始碼解析】- JDBC連線資料庫的原理和操作MyBatis原始碼JDBC資料庫
- 【Falsk 使用資料庫】---- 資料庫基本操作資料庫
- 一種獲取SAP HANA資料庫表條目數的另類方法資料庫
- CloudQuery(統一資料操作平臺)Cloud
- 9.微信公眾平臺開發 - 資料庫操作資料庫
- Netweaver和SAP雲平臺的quota管理