日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java 8:在2分钟内将智能流与数据库一起使用

發(fā)布時(shí)間:2023/12/3 java 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 8:在2分钟内将智能流与数据库一起使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

快速流媒體

當(dāng)Java 8最終問(wèn)世時(shí),我和一些大學(xué)開始了一個(gè)開源項(xiàng)目,以利用Java 8的流庫(kù)使整個(gè)Java / DB問(wèn)題進(jìn)一步向前發(fā)展,以便將數(shù)據(jù)庫(kù)表視為純Java 8流。 速度誕生了! 哇,現(xiàn)在我們可以做類型安全的數(shù)據(jù)庫(kù)應(yīng)用程序了,而不必再編寫SQL代碼了。在上世紀(jì)90年代,我們的Java開發(fā)人員不得不努力使數(shù)據(jù)庫(kù)應(yīng)用程序正常工作。 有很多編碼,調(diào)試和調(diào)整。 盡管如此,應(yīng)用程序還是經(jīng)常面對(duì)我們不斷增加的痛苦而爆炸。 隨著更好的語(yǔ)言,JDBC和框架支持,事情隨著時(shí)間的推移逐漸得到改善。 我想我們的開發(fā)人員也有所改進(jìn),但是對(duì)此有不同的看法……

杜克和尖塔映射流。

Speedment連接到現(xiàn)有數(shù)據(jù)庫(kù)并生成Java代碼。 然后,我們可以使用生成的代碼使用標(biāo)準(zhǔn)Java 8流方便地查詢數(shù)據(jù)庫(kù)。 隨著新版本2.3的問(wèn)世,我們甚至可以進(jìn)行并行查詢流!

讓我們舉一些例子,假設(shè)我們定義了以下數(shù)據(jù)庫(kù)表:

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(45) NOT NULL,`firstName` varchar(45) DEFAULT NULL,`lastName` varchar(45) DEFAULT NULL,`email` varchar(45) NOT NULL,`password` varchar(45) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `email_UNIQUE` (`email`),UNIQUE KEY `username_UNIQUE` (`username`) ) ENGINE=InnoDB;

開源數(shù)據(jù)庫(kù)MySQL,PostgreSQL和MariaDB免費(fèi)提供Speedment。 還支持商業(yè)數(shù)據(jù)庫(kù)(如Oracle)作為企業(yè)附加功能。

例子

查詢方式

選擇所有帶有“ .com”郵件地址的用戶并打印:

users.stream().filter(EMAIL.endsWith(".com")).forEach(System.out::println);

選擇名字為“ Adam”或“ Cecilia”的用戶,并按用戶名順序?qū)ζ溥M(jìn)行排序,然后選擇其中的前10位并提取電子郵件地址并進(jìn)行打印。

users.stream().filter(FIRST_NAME.in("Adam", "Cecilia")).sorted(USERNAME.comparator()).limit(10).map(User::getEmail).forEach(System.out::println);

創(chuàng)建數(shù)據(jù)庫(kù)內(nèi)容

創(chuàng)建一個(gè)新用戶并將其持久保存在數(shù)據(jù)庫(kù)中:

users.newEmptyEntity().setUsername("thorshammer").setEmail("mastergamer@castle.com").setPassword("uE8%3KwB0!").persist();

更新數(shù)據(jù)庫(kù)內(nèi)容

查找id = 10的用戶并更新密碼:

users.stream().filter(ID.equal(10)).map(u -> u.setPassword("pA6#nLaX1Z")).forEach(User::update);

刪除數(shù)據(jù)庫(kù)內(nèi)容

刪除ID = 100的用戶:

users.stream().filter(ID.equal(100)).forEach(User::remove);

新酷玩法:并行查詢

做某種昂貴的手術(shù)
對(duì)于10_000 <= id <20_000的用戶并行

users.stream().parallel().filter(ID.between(10_000, 20_000)).forEach(expensiveOperation());

設(shè)定

上面示例的安裝代碼:

final Speedment speedment = new JavapotApplication().withPassword("javapot") // Replace with your real DB password.build();final Manager<User> users = speedment.managerOf(User.class);

加速入門

在GitHub上了解有關(guān)如何開始使用Speedment的更多信息。

翻譯自: https://www.javacodegeeks.com/2016/04/java-8-use-smart-streams-database-2-minutes.html

總結(jié)

以上是生活随笔為你收集整理的Java 8:在2分钟内将智能流与数据库一起使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。