拓展阅读

linq

querydsl

Jinq 是什么?

Jinq为开发者提供了一种在Java中编写数据库查询的简单自然的方式。

你可以像处理存储在集合中的普通Java对象一样处理数据库数据。你可以使用普通的Java命令遍历和过滤它们,而你的所有代码都将自动转化为优化的数据库查询。

最后,Java终于有了LINQ风格的查询!

简单自然的查询。

使用Jinq,你可以使用简单自然的Java语法编写数据库查询。利用Java 8对函数式编程的新支持,你可以使用与常规Java数据相同的代码来过滤和转换数据库中的数据。

例如,下面是一段使用Jinq从数据库中获取所有名为“Alice”的客户的Java代码。

database.customerStream().where(
customer -> customer.getName().equals("Alice"));

代码执行流程如下:

从数据库中获取所有客户的流 使用函数访问每个客户对象并进行过滤 只返回名为“Alice”的客户

当在Java中执行此代码时,Jinq将自动将代码转换为数据库可以理解的SQL查询。

PreparedStatement s = con.prepareStatement("SELECT * "

"FROM Customer C "
"WHERE C.Name = ? ");
s.setString(1, "Alice");
ResultSet rs = s.executeQuery();

更少的错误。更少的安全漏洞。更快的开发速度。

现有的数据库查询写在字符串内部。为了检查错误,你必须启动数据库并运行查询。这会减慢开发速度并导致更多错误。

Jinq查询是普通的Java代码,Java编译器将早期捕获错误,加快开发速度。由于查询被编写为Java代码,因此不可能出现常见的SQL注入安全问题。

立即尝试

Jinq是开源的。现在下载并按照入门指南学习更多关于其功能的信息。

参考资料

https://www.jinq.org/