写了 15 年的程序,人到中年总有很多话要说,千言万语尽在项目里,里面有我想说的一切。
项目地址: https://github.com/braisdom/ObjectiveSql
ObjectiveSQL 是我构想了很长时间,到底是让 Java 像 SQL 一样编程,还是让 SQL 让 Java 一样编程,纠结了很久,还是让 Java 更像 SQL,Java 的语法表现力不够,只能扩展 Javac,实现了算法运算,比较运算,逻辑运算符重载,并封装了常用数据的的函数,抽象了 Expression,使的 Java 非常接的 SQL,同时也实现了简单 SQL 编程的代码生成,基本不需要写代码,也不需要配置就能实现简单 SQL 的编程,话不多说,先看示例,有兴趣可以到 github 上看。
Order.Table orderTable = Order.asTable();
Select select = new Select();
select.project(sum(orderTable.amount) / sum(orderTable.quantity) * 100)
.from(orderTable)
.groupBy(orderTable.productId);
Member.Table member = Member.asTable();
Order.Table order = Order.asTable();
Select select = new Select();
select.from(order, member)
.where(order.memberId.eq(member.id));
select.project(member.no,
member.name,
member.mobile,
countDistinct(order.no).as("order_count"),
sum(order.quantity).as("total_quantity"),
sum(order.amount).as("total_amount"),
min(order.salesAt).as("first_shopping"),
max(order.salesAt).as("last_shopping"));
select.groupBy(member.no, member.name, member.mobile);
ObjectiveSQL is an ORM framework in Java base on ActiveRecord pattern, which encourages rapid development and clean, codes with the least, and convention over configuration.
Features
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.