成为Java流大师–第6部分:使用流创建新的数据库应用程序
您是否曾經想開發數據庫應用程序的“快速”版本? 在此動手實驗文章中,您將學習一種真正簡單而直接的方法。 整個Java域模型將自動為您生成。 您只需連接到現有數據庫,然后開始使用Java流進行開發。 例如,您將能夠在幾分鐘內為您現有的數據庫創建一個新的Web應用程序。
本文是有關如何成為Java流大師的系列文章中的最后一篇。
第1部分:創建流
第2部分:中級操作
第三部分:終端操作 第4部分:數據庫流 第5部分:將聯接的數據庫表轉換為流 第6部分:使用流創建數據庫應用程序
到目前為止,您必須在文章和練習中體驗Speedment。 為簡潔起見,我們沒有提供有關如何從頭開始的任何描述,而是希望您了解將Java Streams與數據庫一起使用的外觀。 在本文中,我們將向您展示如何針對在任何數據庫上運行的應用程序利用Speedment。 安裝僅需幾分鐘,但由于Streams的表現力和所提供的類型安全性,將為您節省大量時間。
入門
為了幫助您配置項目,Speedment提供了一個項目初始化程序。 填寫完項目的詳細信息后,它將為您提供一個zip文件,其中包含帶有所需依賴項的pom.xml和Main.java啟動程序。
Speedment初始化程序可用于配置Speedment項目。
單擊“下載”后,解壓縮文件并在IDE中將其作為Maven項目打開。 在IntelliJ中,最簡單的方法是選擇“文件”->“打開”,然后在解壓縮的項目文件夾中選擇pom.xml文件。
如果您想在現有項目中使用Speedment,請通過Initializer配置項目,以確保獲得所有需要的依賴項。 然后只需將提供的pom.xml與您當前的pom.xml合并,然后重新導入Maven。
您可能還記得前面的文章,Speedment依賴于自動生成的Java域模型。 因此,在編寫應用程序之前,我們需要生成所需的類。 這可以通過使用Speedment Tool來完成,該工具可以通過在終端中運行mvn speedment:tool或通過IDE的內置Maven菜單運行相同的目標來啟動。
首先,將要求您注冊免費許可證并連接到數據庫。 免費許可證可用于所有開源數據庫(無限使用)和商業數據庫(最大500 MB,不需要任何賬單信息)。
免費許可證可用于所有開源數據庫(無限制)和商業數據庫(最大500 MB,并且不需要賬單信息。)
完成注冊后,將要求您提供數據庫的憑據(確保在初始化程序中選擇了正確的DB類型)。 使用您自己的本地數據庫,或者使用我們在練習中使用的Sakila數據庫運行一些測試。
Sakila數據庫憑證
類型: MariaDB
主持人: 35.203.190.83 端口: 3306 數據庫名稱: sakila 用戶: sakila 密碼: sakila
填寫數據庫憑據以連接到您的數據源。 (注意:Speedment永遠不會存儲您的數據庫密碼)。
單擊“連接”按鈕將啟動Speedment Tool。 它在左側顯示數據庫結構,在右側顯示所選表或列的設置。 在這種情況下,默認設置已足夠,我們可以繼續并按“ Generate”(生成)(如果您的應用程序不需要所有的表和/或列,則可以在生成前禁用它們)。
Speedment Tool可視化數據結構,并允許自定義生成的代碼。
接下來,Speedment將分析數據庫元數據并生成整個Java域模型。 一旦完成此過程,就可以編寫應用程序了。 如果簽出Main.java文件,您將找到一個包含以下內容的項目啟動器:
public class Main { ????public static void main( final String... args) { Speedment app = new MyApplicationBuilder() .withUsername( "your-dbms-username" ) .withPassword( "your-dbms-password" ) .build(); app.stop(); } }從這里開始,您可以使用前面文章中提供的示例來構建應用程序。 因此,我們可以通過鍵入以下內容來獲取膠片表的管理器(膠片表內容的句柄),從而閉合圓:
FilmManager films = app.getOrThrow(FilmManager. class ); <br>使用Manager,我們現在可以查詢連接的數據庫,如下所示:
List<Film> filmsTitleStartsWithA = films.stream() .filter(Film.TITLE.startsWith( "A" )) .sorted(Film.LENGTH) .collect(Collectors.toList()); ? filmsTitleStartsWithA: [ FilmImpl { filmId= 15 , title=ALIEN CENTER, …, rating=NC- 17 , length = 46 , FilmImpl { filmId= 2 , title=ACE GOLDFINGER, …, rating=G, length = 48 , … ]練習題
這周沒有相關的GitHub存儲庫供您使用。 相反,我們鼓勵您將Speedment集成到新的或現有的數據庫應用程序中,以嘗試您新獲得的技能。
額外運動
當您準備好項目時,建議您嘗試一下
HyperStream ,尤其是在您擁有大型數據庫并且想要提高讀取性能的情況下。
HyperStream超越了Stream,并增加了JVM內存功能,將應用程序速度提高了幾個數量級。 您只需要在現有的pom.xml和Main.java文件中添加幾行代碼:
.withBundle(InMemoryBundle. class ) // add to the app builder ... // Load data from database into materialized view app.getOrThrow(DataStoreComponent. class ) .load(); <br>在用戶指南中內容。 Stream API保持不變,但性能大大提高。
結論
在過去的六周中,我們展示了Java Stream API的有用性以及如何利用它來用純Java編寫類型安全的數據庫應用程序。 如果您想了解有關Speedment的更多信息,請查看用戶指南 ,該指南還包含有關Java Streams的更詳盡的指南。
最后-感謝您對我們的文章系列感興趣,非常高興看到你們中的許多人一直在跟隨提供的練習。 編碼愉快!
s
Per Minborg
Julia·古斯塔夫森(Julia Gustafsson)
資源資源
有關Speedment Stream JOIN的更多閱讀
速度手冊
速度初始化器 在GitHub上加速
翻譯自: https://www.javacodegeeks.com/2019/11/master-java-streams-creating-database-using-streams.html
總結
以上是生活随笔為你收集整理的成为Java流大师–第6部分:使用流创建新的数据库应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jpa和hibernate_从JPA到H
- 下一篇: 电光白需要备案吗(电光白备案)