Speedment 是一個基於 Java8 Stream 的 ORM 工具包和運行時環境。git
做爲一個 ORM 框架,Speedment 能夠從傳統關係型數據庫中分析數據,同時,在它提供的運行時環境下,也能夠開發基於 Java 的數據庫應用。你只須要用標準的 Java8 Stream,不用寫任何sql,類sql。github
查找一個超過120分鐘的電影:sql
// Searches are optimized in the background! Optional<Film> longFilm = films.stream() .filter(Film.LENGTH.greaterThan(120)) .findAny();
結果爲下列sql:數據庫
SELECT `film_id`,`title`,`description`,`release_year` FROM FROM `sakila`.`film WHERE (`length` > 120)
不須要寫任何sql,一個完美的純Java世界!框架
After all, we all love Java and why should we need to know SQL工具
我如此喜歡Java,爲何還要學SQL?code
Stream 與 SQL 有類似的語義,見下表:htm
SQL | Java8 Stream |
---|---|
FROM | stream() |
SELECT | map() |
WHERE | filter() (before collecting) |
HAVING | filter() (after collecting) |
JOIN | flatMap() |
DISTINCT | distinct() |
UNION | concat(s0, s1).distinct() |
ORDER BY | sorted() |
OFFSET | skip() |
LIMIT | limit() |
GROUP BY | collect(groupingBy()) |
COUNT | count() |