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

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

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

6755 次点击
所在节点    Java
57 条回复
chendy
2020-10-23 16:11:29 +08:00
见过的这种写法都很水,一般连接池也没有,事务,异常处理也不完善
但是项目不重要的话也就无所谓了…
libook
2020-10-23 16:11:57 +08:00
有很多看起来“非主流”的代码可能是菜鸡写的烂代码也可能是大牛精心构造,得看这么写的理由是什么,有没有更好的方案。理由说得过去就合理,说不过去就不合理,只要满足高可读性、高可靠性、高性能的原则就是好代码。
zoharSoul
2020-10-23 16:13:25 +08:00
你说的是 jdbc?
我觉得没啥问题啊..
有点就是简单查询下没必要引入个 jpa 吧
lxk11153
2020-10-23 16:14:26 +08:00
JdbcTemplate ?
cpstar
2020-10-23 16:23:17 +08:00
最终不还要翻译到 SELECT ?
这种还好,就是不知道条件那里怎么写,如果写成 String sql = "SELECT * FROM xxx WHERE id='"+id+"'",那就真蜜汁自信了。
LowBi
2020-10-23 16:24:06 +08:00
哈哈哈,目前公司写接口就这样,啥也不是
iisky1121
2020-10-23 17:20:58 +08:00
???,jdbc 不是这样的吗?
oma1989
2020-10-23 17:26:52 +08:00
刚写了个调用 API 接口取数,JDBC 直连落库的一次性 JAR .....
oma1989
2020-10-23 17:27:55 +08:00
简单的功能简单写,总不至于大炮打苍蝇吧.....
Bromine0x23
2020-10-23 17:32:36 +08:00
要是 Java 多行字符串给力点的话,早就直接用 JdbcTemplate 了
vincent7245
2020-10-23 17:34:40 +08:00
这个需要具分析了,看业务需求,比如并不是所有的 jdbc 都要用连接池,甚至有的项目绝对不能用连接池。还有就是可能受限于项目规模没必要用第三方的框架,没必要大炮打蚊子。不过直接 String sql = “”; 确实是有点 low,好歹封装一下吧
xiangyuecn
2020-10-23 17:34:58 +08:00
返璞归真的写法。前提该懂的都懂。是最高效最简洁的写法。对于维护难易,就算是 Mybatis 也都是各有千秋,评价不了。

但看这个 sql 用 String 类型,应该是菜鸟,100%进行了字符串无任何处理的拼接。
nulIptr
2020-10-23 17:40:49 +08:00
曾经我也用 ef,后来发现还是 dapper 好用。
模板生成增删查改方法,更复杂的方法直接上 sql
写好注释,复杂业务下 sql 可维护性比 orm 高
再说你们用 orm 的就没见过慢查询吗。。。
FireFoxAhri
2020-10-23 17:42:40 +08:00
之前用 scala 写 play 框架,就是 anorm 。。封装了下 jdbc,全部手写 sql
koal
2020-10-23 17:48:16 +08:00
手工写 mysql 到 java 代码中厮混,就是耍流氓!
Qlccks2
2020-10-23 17:56:10 +08:00
得看需要才知道合理不合理,如果整个系统全是这么写的肯定不合理。
lichao
2020-10-23 17:57:43 +08:00
古代的项目都是这么写的
kanemochi
2020-10-23 18:01:09 +08:00
项目很简单,就几个 sql 的规模的话也未尝不可
zgzhang
2020-10-23 18:07:04 +08:00
注入教做人
SabaPing
2020-10-23 18:12:45 +08:00
我们就这么写啊,直观,sql 不留坑,所见即所得。

当然楼上老哥说的好,具体分析,看业务需求

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

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

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

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

© 2021 V2EX