如何评价 Java 类中写 SQL 的行为?

2020-10-23 16:06:45 +08:00
 Geekerstar

不是 JPA,不是 Mybatis,Java 类里直接 String sql ="select xxxx" ,然后调用一个封装的 xxx.select()方法,大家如何看待这种行为?

7003 次点击
所在节点    Java
57 条回复
melkor
2020-10-24 07:22:42 +08:00
@yuhuan66666 这脑洞,长见识了
jzphx
2020-10-24 09:12:29 +08:00
我见过,之前接手了老外同事的项目,原汁原味的 sql,数据库连接池都不用。看到有个热帖有人回复说国内码农不写注释嘛,国外的摸鱼码农也不写注释。
Achiii
2020-10-24 09:53:53 +08:00
这样不怕注入吗
forbreak
2020-10-24 10:45:21 +08:00
如果参数不是通过+号拼接,那就是正常行为。
PDX
2020-10-24 10:56:11 +08:00
这样写没毛病吧?
rodrick
2020-10-24 11:23:47 +08:00
我这甚至有前端动态拼 sql 在请求接口里,后台直接拿封装好的一套方法拿出这个接口的 sql 去跑的。。
sun1991
2020-10-24 11:23:53 +08:00
@nulIptr 同 EF 转 Dapper 爱好者.
感觉简单的事情 ORM 能做的挺好, 但是复杂度上去了, ORM 同样处理不好, 还不如直写 SQL 来的简单明了.
yjxjn
2020-10-24 11:36:40 +08:00
@xiangyuecn 说的对,最简洁高校,除了不易维护,其他都还好。。
xumng123
2020-10-24 12:21:57 +08:00
框架大多数都提供原生 sql 访问,这样写也不是不行,比如数据访问层无法满足需求
shadownet
2020-10-24 14:44:07 +08:00
就是你们这些观点让原本简单的事情复杂化,本来一个 sql,10 毫秒搞定的,外面套一堆东西,最后 100 毫秒都不够,然后让客户加硬件
janus77
2020-10-24 14:57:00 +08:00
我们的项目需要跑每日报表,计算量大 计算逻辑复杂,就是直接 jdbc,不然性能跟不上
elintwenty
2020-10-24 15:50:22 +08:00
看项目复杂度,十万行和五百行当然不会是同一个结构。但是直接传 sql 需要处理注入等安全问题吧?
DoctorCat
2020-10-24 23:49:29 +08:00
小明:劳资刚从写 js 转 java,明明 run 起来了但你竟然告诉我这么写不行?
skinny
2020-10-25 09:31:02 +08:00
只要不是直接拼接字符串,用户输入用绑定参数,不用视之为洪水猛兽。
php01
2020-10-25 16:19:47 +08:00
我是万万没想到居然有这么多人支持直接写 sql,看来我在 java 里也能混口饭吃了
Bromine0x23
2020-10-25 18:30:19 +08:00
首先要明确:直接写 SQL≠拼接参数。
拼接参数是有安全问题,但是只要是用绑定参数,直接写 SQL 就不存在安全隐患。
CantSee
2020-10-28 14:57:26 +08:00
亚信?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/717901

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX