java中复杂的sql业务查询_复杂的SQL条件

本文介绍了Nutz.Dao如何处理复杂的SQL查询条件,包括Condition接口的使用,Cnd工具类的便利性,以及Criteria接口的引入,用于更方便地构造和参数化复杂的查询逻辑。通过示例展示了如何创建嵌套表达式和动态构建条件,以适应不同的查询需求。
摘要由CSDN通过智能技术生成

概述

什么是 Nutz.Dao 中的复杂SQL条件

对于 Nutz.Dao 来说,它本质上就是将你的 Java 对象转化成 SQL,然后交给 JDBC 去执行。

而 SQL 中,当执行数据删除和查询操作时,最常用的就是 WHERE 关键字。

WHERE 关键字后面的就是所谓的复杂查询条件

Nutz.Dao 将如何如何使用这个条件

Dao 接口的 clear 方法和 query 方法的第二个参数,就是为了生成 WHERE 后面那段字符串设计的

这个参数是一个 org.nutz.dao.Condition 接口的实现类

通过该接口的 toSql(org.nutz.dao.entity.Entity) 方法, Nutz.Dao 将获得 WHERE 后面那段字符串

当然也包括 ORDER BY

Condition 接口

这个接口只有一个方法toSql(Entity> entity)

这个方法带一个参数 org.nutz.dao.entity.Entity

通过这个参数,实现者可以获得当前需要操作的实体的配置信息

当然,如果你不需要的话,你可以不理睬这个参数

Nutz.Dao 会将toSql(Entity> entity) 的返回直接拼接到SQL 的 WHERE 关键字后面

如果你返回的字符串以 WHERE 或者 ORDER BY 开头,它会直接使用,否则会补上一个 WHERE 关键字

这个判断会忽略前后空白以及大小写

Nutz 给你的快速实现

如果你的数据库字段被假设不会发生变化,用直接硬编码是个很好的选择

如果在开发期,你的数据库字段变化非常频繁,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值