Java 8:在2分钟内将智能流与数据库一起使用
快速流媒體
當Java 8最終問世時,我和一些大學開始了一個開源項目,以利用Java 8的流庫使整個Java / DB問題進一步向前發(fā)展,以便將數(shù)據(jù)庫表視為純Java 8流。 速度誕生了! 哇,現(xiàn)在我們可以做類型安全的數(shù)據(jù)庫應用程序了,而不必再編寫SQL代碼了。在上世紀90年代,我們的Java開發(fā)人員不得不努力使數(shù)據(jù)庫應用程序正常工作。 有很多編碼,調(diào)試和調(diào)整。 盡管如此,應用程序還是經(jīng)常面對我們不斷增加的痛苦而爆炸。 隨著更好的語言,JDBC和框架支持,事情隨著時間的推移逐漸得到改善。 我想我們的開發(fā)人員也有所改進,但是對此有不同的看法……
杜克和尖塔映射流。
Speedment連接到現(xiàn)有數(shù)據(jù)庫并生成Java代碼。 然后,我們可以使用生成的代碼使用標準Java 8流方便地查詢數(shù)據(jù)庫。 隨著新版本2.3的問世,我們甚至可以進行并行查詢流!
讓我們舉一些例子,假設我們定義了以下數(shù)據(jù)庫表:
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ù)庫MySQL,PostgreSQL和MariaDB免費提供Speedment。 還支持商業(yè)數(shù)據(jù)庫(如Oracle)作為企業(yè)附加功能。
例子
查詢方式
選擇所有帶有“ .com”郵件地址的用戶并打印:
users.stream().filter(EMAIL.endsWith(".com")).forEach(System.out::println);選擇名字為“ Adam”或“ Cecilia”的用戶,并按用戶名順序?qū)ζ溥M行排序,然后選擇其中的前10位并提取電子郵件地址并進行打印。
users.stream().filter(FIRST_NAME.in("Adam", "Cecilia")).sorted(USERNAME.comparator()).limit(10).map(User::getEmail).forEach(System.out::println);創(chuàng)建數(shù)據(jù)庫內(nèi)容
創(chuàng)建一個新用戶并將其持久保存在數(shù)據(jù)庫中:
users.newEmptyEntity().setUsername("thorshammer").setEmail("mastergamer@castle.com").setPassword("uE8%3KwB0!").persist();更新數(shù)據(jù)庫內(nèi)容
查找id = 10的用戶并更新密碼:
users.stream().filter(ID.equal(10)).map(u -> u.setPassword("pA6#nLaX1Z")).forEach(User::update);刪除數(shù)據(jù)庫內(nèi)容
刪除ID = 100的用戶:
users.stream().filter(ID.equal(100)).forEach(User::remove);新酷玩法:并行查詢
做某種昂貴的手術(shù)
對于10_000 <= id <20_000的用戶并行
設定
上面示例的安裝代碼:
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分钟内将智能流与数据库一起使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (get linux)
- 下一篇: 安徽消防备案查询系统(安徽消防备案)