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

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

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

6769 次点击
所在节点    Java
57 条回复
yuhuan66666
2020-10-23 18:13:33 +08:00
碰见过通过 http 传 sql 到另一个系统执行的
yinzhili
2020-10-23 18:17:06 +08:00
都是赶时间引起的
wanguorui123
2020-10-23 18:18:16 +08:00
碰见过一个 sql 比我写的作文还长的栗子
fhsan
2020-10-23 18:20:36 +08:00
具体问题具体分析,不要生搬硬套,懂得都懂
wysnylc
2020-10-23 18:28:48 +08:00
哦吼,注入
superrichman
2020-10-23 18:31:53 +08:00
sqlmap 狂喜(不是

赶紧跑吧,说不定哪天就被脱裤(划掉
wysnylc
2020-10-23 18:39:31 +08:00
@superrichman #26 我真佩服他们不怕死的劲头
qwerthhusn
2020-10-23 18:43:09 +08:00
主要是 Java 不支持多行文本(除了最新版本,但是这个应该没真正的项目去用),所以写出来的多行 SQL 没法看
但是如果换了 Kotlin,有多行文本的话,就好多了
wowo243
2020-10-23 19:03:01 +08:00
我们现在的项目里就是这么写的。。。。
用的是 spring jdbc
wowo243
2020-10-23 19:05:55 +08:00
感觉好处就是直接写 sql,能针对性的优化吧,囧;
还有就是啥都能自己造;
坏处,就是好像这玩意没那么流行,感觉更常见的还是 mybatis
wangritian
2020-10-23 19:20:52 +08:00
我查询全写 sql,增删改用对象
wangyanrui
2020-10-23 20:09:09 +08:00
ORM + 充血模型 万岁
Cbdy
2020-10-23 20:14:09 +08:00
codingbody
2020-10-23 21:42:05 +08:00
我以前公司项目全是 jdbcTemplate,现在做 ETL 连 Spring 都没有映入。
iTanX
2020-10-23 22:11:28 +08:00
@chendy
有没有连接池取决于获取到的是什么数据源,有没有事务取决于数据源有没有事务控制器控制,异常处理完善不完善取决于楼主说的那个 select()方法是否写的漂亮。你确定很水?事实上,很多场景 JDBC 才能满足需求,mybtis 等框架不适用于所有业务场景的
hafuhafu
2020-10-23 22:13:17 +08:00
新项目,除非只写个位数的简单 sql,不然就算是全手写也肯定是 mybatis 更方便和易读吧,加个依赖可能一两分钟的事吧。
老项目可能是遗留呢,以前的人都这么写,接盘的人也纷纷跟着写。
jzmws
2020-10-23 22:18:23 +08:00
我就是这样写的 , jpa 预编译的 动态生成 sql 语句
fansangg
2020-10-23 23:38:39 +08:00
怎么办,Google 的 room 也是在类里写 sql 语句
fansangg
2020-10-23 23:42:20 +08:00
怎么评价?
@Query("SELECT * FROM xxx ORDER BY id DESC LIMIT 1")
wflwq
2020-10-24 04:36:23 +08:00
有个需求要批量执行某一条更新语句 N 次,碍于 mybaits 性能,采用了原生的 batch 模式,语句就直接怼代码里了。
仔细想想写 xml 文件里解析出来也便于维护一点

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

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

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

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

© 2021 V2EX