V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Braisdom  ›  全部回复第 24 页 / 共 31 页
回复总数  612
1 ... 16  17  18  19  20  21  22  23  24  25 ... 31  
2020-12-12 20:37:20 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@kran 私下交流,请加我,Java 的运算符重载是个特殊的应用,加我微信: braisdom
2020-12-12 20:35:46 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@NeinChn 兄弟,不同部署环境应该通过数据库区分,例如:开发环境 development, 测试环境 test,生产环境 production, 我实在不明白,你为什么用表名去区分不同的部署环境,
2020-12-12 20:32:21 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@quan01994 .net 的 entity framework 我参考了很多,表达式这块它可以做的,但有很多做了。
2020-12-12 16:48:47 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@young1lin 这要去研究一下 SQL 和 ORM 的发展史了,你就能明白为什么会有 ORM 这种形式的框架,为什么数据库不像 TCP/IP,HTTP,SMTP 等交换协议一样,泛泛的讨论框架的区别没有太大意义,每个框架的出现代表一个时代的认知水平,人的认知随时间一直在变的。ObjectiveSQL 的出现也是基于前人的认知升级而已。
2020-12-12 14:55:19 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@lispczz 哈哈,现在才刚刚开始,项目已经初步的稳定,但未来的路还很长,需要更多的人认可,并能参与进来。

v2ex 是个很好的平台,是我在推广过程中,回复和评论最多的一个平台,与大家在一起讨论,收获颇多,感谢各位的支持,希望得到更多批评与挑战。
2020-12-12 14:43:31 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@hantsy 只是一个示例,算术表达式,比较表达式,逻辑表达式、函数调用 这几种在 SQL 中是最为常用的,也是每个语言都有的,但不同语言的表现形式是不一样的。

我只是使的 Java 中的上述表达式 能够直接转换,保持统一的编码样式,而不是通过其它形式的封装,大部分 ORM 框架,包括 Spark SQL, Flink SQL 等 SQL 编程都是通过函数来实现,例如:plus(a, b), minus(a, b) 等,这种形式会使得代码可读性极差。
2020-12-12 14:24:33 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@shanghai1998 简单的表达式,每个框架和语言差别不大,一个项目中存在大量复杂表达式,那些都是关键,php 的复杂表达式写起来估计那没这么美观。

你写的这些每个语言,或者 ORM 框架都差不了太多,最多的就是对符号的偏好不同罢了。


@lower 那块比较复杂,不是简单能说清楚的。有兴趣加我微信:braisdom
2020-12-12 14:05:17 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@hantsy 除了这些比较简单的表达式,下面的表达式呢?

过滤:where (t1.amount > 1000 and t1.product_code = '0001') and (t1.state = 1 or t1.state = null)

ObjectiveSQL: order.where((order.amount > 1000 && order.product_code.eq('0001'))
&& order.state.eq(1) || order.state.isNull() )

您是大佬,能看出我的 API 设计吗?为什么要做这件事,其它的 ORM 框架对于上述表达式什么怎么做?
2020-12-12 13:57:09 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@hantsy 现有的框架当然支持复杂表达式了,只不过支持的方式不同而已,
以同环比的投影表达式为例:
SQL:(sum(t1.current) - sum(t1.last)) / sum(t1.last) * 100
ObjectiveSQL: (sum(sales.current) - sum(sales.last)) / sum(sales.last) * 100

// sales 为 Order.asTable() 方法生成,该方法包括内部的所有字段均为怎么生成

我的项目几乎和 SQL 一模一样,你猜其它项目会怎么做呢?字符?还是 lambda
2020-12-12 13:44:47 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@sweetsorrow211 @qmzhixu 有兴趣,可以深入聊一下两者,MyBatis MyBatis-Plus 我用了好多年的,正是因为它们有太做做的不好的地方,我才开始 ObjectiveSQL 项目的。
2020-12-12 13:43:16 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@tydl 好问题,每个语言优秀的地方都是可以借鉴的。
2020-12-12 13:17:58 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@wg20080215 ObjectiveSQL 有长的长处,也有其短处,不可能覆盖所有场景的使用

JPA 代表的是一种编程模式,以动态代理的编程,ObjectiveSQL 则是以另一种静态生成代码的形式,属于另一个流派,有人喜欢,有人讨厌,这是个人偏好问题。用心做好自己的事,不断进步。
2020-12-12 10:14:26 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@justin2018 感觉是的,但我的用法不太对呀。应该通过滚动条的。哈哈
2020-12-12 09:26:08 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@micean 推广的积极,也就说明项目的成熟度在提升,需要兄弟们支持,需要各位通过实际的行动进行投票。就像优秀的企业是靠客户的钞票投票,而不同情,一味的寻求国产支持,一直靠扶的项目或公司走不远。
2020-12-12 09:22:04 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@micean idea 做的是不错,但需求是无限增长的
2020-12-12 09:21:23 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
一个时代的发展前期,总是充满质疑,很正常,等真相大白的一天,各位可以反思一下今天的质疑。
我对比过现有的所有 ORM 框架,才决定做 ObjectiveSQL,以我 15 年编程的经验对比了各种优缺点。

我是做零售系统的大数据分析的,零售业也是最早将数据应用到生产过程中的行业之一,其中的 SQL 与 Java 之间磨合了很多年。我也在其中痛苦了很年。感谢各位支持,你们的质疑也是对我分析优缺点的补充。


@micean
@sagaxu
@zsl199512101234
@nc4697
@casillasyi
@rockyou12
@sprite82
@kylix
2020-12-11 21:54:26 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@adguy 哈哈,可能我要把基础的 CRUD 变为 Java API 了
2020-12-11 21:09:20 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@VeryZero 下面的复杂表达式计算,现有的所有 ORM 框架都做不到,但却很实用。

```
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-01 00:00:00", "2020-05-02 23:59:59"))
.groupBy(orderTable.memberId);

List<Order> orders = select.execute(Order.class);

```
2020-12-11 21:07:40 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@cheng6563 看我的代码,我实现了运算符重载


@taogen 你想要的通过这种方式很容易实现

Member.Table member = Member.asTable();
Order.Table order = Order.asTable();

Select select = new Select();

select.project(member.no, member.name, count().as("order_count"))
.from(member)
.leftOuterJoin(order, order.memberId.eq(member.id))
.groupBy(member.no, member.name);

List<Member> members = select.execute(Member.class);
2020-12-11 17:34:22 +08:00
回复了 Braisdom 创建的主题 Java 对比 MyBatis,你看出什么端倪?
@fengpan567
@okayan
@easylee 你们看到的只是一小部分特性,这次发的不够好,
1 ... 16  17  18  19  20  21  22  23  24  25 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2675 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 01:51 · PVG 09:51 · LAX 17:51 · JFK 20:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.