首页 > 数据库 >jinq 入门介绍-java中编写数据库查询的简单自然的方式

jinq 入门介绍-java中编写数据库查询的简单自然的方式

时间:2024-03-05 10:25:04浏览次数:22  
标签:Jinq Java 入门 数据库 Alice 查询 jinq java 代码

拓展阅读

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/

本文由博客一文多发平台 OpenWrite 发布!

标签:Jinq,Java,入门,数据库,Alice,查询,jinq,java,代码
From: https://www.cnblogs.com/houbbBlogs/p/18053384

相关文章

  • 3.1日javaweb
     今天继续进行项目的编写packagecom.example.service;importcom.example.mapper.UserMapper;importcom.example.pojo.Application;importcom.example.pojo.Plan;importcom.example.pojo.User;importorg.springframework.beans.factory.annotation.Autowired;impo......
  • java环境配置
    //参考https://www.php.cn/faq/416290.html安装jdk,软件中有,记住路径    配置环境变量  运行简单例子public class SumOfNumbers {  public static void main(String[]args){    int sum =0;    for (int i =1;i<=1......
  • java反编译工具CFR使用
    java-jarcfr-0.151.jar--helpjava-jarcfr-0.151.jarWindupClasspathTypeLoader.class结果输出到out文件夹java-jarcfr-0.151.jarWindupClasspathTypeLoader.class--outputpath./out反编译jar文件,结果输出到output_jar文件夹Desktopjava-jarcfr-0.151.jar......
  • Java的基本概念
    Java的工作方式:你写出一个应用程序,能够在你朋友的任何产品上执行1.程序员编写源代码2.源代码通过编译器(编译器检查代码是否错误,如果错误,则需要进行更改)3.源代码没有错误则进行输出,编译器将源代码编译成字节码,任何支持Java的装置都可以转译成可执行内容4.通过Java虚拟机(JVM)进......
  • 一文讲明白Java中线程与进程、并发与并行、同步与异步
    写在开头ok,everybody,在过去的两周内,我们大体上讲完了Java的集合,在最后我们探讨了关于HashMap线程不安全的原因,又提出了ConcurrentHashMap这个线程安全的集合解决方案,那么在接下来的2-3周内,我们就一起来学习一下Java中的并发多线程。在开始学习之前,我们必须要搞清楚几个概念:线程......
  • 学java09类型转换
    1类型由低到高byte,short,char-->int-->long-->float-->double2强制类型转换(由高到低)“(类型)变量名”如(byte)i(byte大小在127以内)3自动转换(由低到高)4注意点1.不能对布尔值进行转换2.不能把对象类型转换成不相干的类型3.由高到低转换需要强制转换4.转换时可能存在内存溢出,或......
  • 学java08数据类型扩展
    1.整数拓展二进制前面加“0b”;八进制加0;十进制不写;十六进制0x2.浮点数float特征:有限,离散,舍入误差,接近但不等于因此最好完全不要使用浮点数进行比较问:银行业务一般怎么表示钱?答:一般可以用BigDecimal表示和比较3.Boolean布尔值扩展a."if(flag==true){}"b."if(flag){......
  • 2024-selenium-问题一:java.io.IOException: Invalid Status code=403 text=Forbidden
    问题截图:  问题分析: 参考网址:https://blog.csdn.net/weixin_46739493/article/details/134163739问题解决:1、chrome版本为:版本114.0.5735.199(正式版本);driver的版本为:114.0.5735.90; java-seleium版本为:4.0.0-rc-21<dependency>2<groupId>org.......
  • 学java11运算符
    运算符java支持以下运算符优先级()多用括号1.算术运算符:+,-,*,/,%(取余运算,模运算),++,--//++a先自增再给c赋值a=a+1//a++先给b赋值再自增a=a+1a--和--a原理同上2.赋值运算符:=3.关系运算符:>,<,>=,<=,==,(不等于)!=,instanceof4.逻辑运算符:&&(与),||(或),“!()”(非)&&逻......
  • 学java10变量
    1.变量:可以变化的量Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。//数据类型变量名=值;可以使用逗号隔开来声明多个同类型变量(但不建意)inta=1,b=2,c=3;Stringname="lml";charx="X";doubl......