内容简介:各位,本次新版本做了比较大的优化,主要修复的问题如下:#79,#48,#67,#56 项目地址:https://github.com/braisdom/ObjectiveSql 重点特性介绍: 1)优化SQL 生成逻辑 Order.Table orderTable = Order.asTab...
各位,本次新版本做了比较大的优化,主要修复的问题如下:#79,#48,#67,#56
项目地址:https://github.com/braisdom/ObjectiveSql
重点特性介绍:
1)优化 SQL 生成逻辑
Order.Table orderTable = Order.asTable();
Select select = new Select();
select.project((sum(orderTable.amount) / sum(orderTable.quantity) * 100).as("unit_amount"))
.from(orderTable)
.where(orderTable.quantity > 30 &&
orderTable.salesAt.between("2020-05-02 23:59:59", "2020-05-02 23:59:59"))
.groupBy(orderTable.memberId);
SELECT (SUM(`orders_t0`.`amount` ) / SUM(`orders_t0`.`quantity` ) * 100) AS unit_amount
FROM `orders` AS `orders_t0`
WHERE `orders_t0`.`quantity` > 30 AND `orders_t0`.`sales_at` BETWEEN '2020-05-01 00:00:00' AND '2020-05-02 23:59:59'
GROUP BY `orders_t0`.`member_id`
深度解析javac 构建AST 过程,对执行优先级和括号进行解析,生成完全符合 Java 编码的SQL 语句
2)永真表达式(实现动态SQL 构建)
Order.Table orderTable = Order.asTable();
Select select = new Select();
LogicalExpression eternalExpression = new EternalExpression();
if(filteredNo.length > 0) {
eternalExpression = eternalExpression.and(orderTable.no.in(filteredNo));
}
if(filteredQuantity != 0) {
eternalExpression = eternalExpression.and(orderTable.quantity > filteredQuantity);
}
select.project((sum(orderTable.amount) / sum(orderTable.quantity) * 100).as("unit_amount"))
.from(orderTable)
.where(eternalExpression)
.groupBy(orderTable.memberId);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
如何把事情做到最好
乔治·伦纳德 / 张乐 / 中国青年出版社 / 2014-2 / 29.90元
•改变全球9800万人的人生指导书 •全美第一本系统阐述学习与成功之道的经典著作 •长期盘踞全美畅销书榜单 •21年后,这本传奇之书终于在中国震撼上市 •把事情做到最好,第一不强求天赋,第二不介意起步的早晚,你要做的就是“起步走”并“不停地走” 《如何把事情做到最好》出 版于1992年,经久不衰,经过一代又一代的读者口碑相传后,畅销至今。作者以其独特的视角告诉人们,如......一起来看看 《如何把事情做到最好》 这本书的介绍吧!