jdbc 是个啥原理啊

2022-09-22 07:14:47 +08:00
 jchnxu
发现没有 jdbc 的 node.js 实现。我寻思这玩意不就是 tcp 连接么,为啥没人写一个
7038 次点击
所在节点    程序员
47 条回复
dqzcwxb
2022-09-22 11:36:59 +08:00
java database connectivity,简称 jdbc
L0L
2022-09-22 11:43:32 +08:00
你可能不需要 jdbc
lookStupiToForce
2022-09-22 11:52:35 +08:00
xswl 萌新很可爱
jchnxu
2022-09-22 12:50:07 +08:00
@L0L #22 我也是这么想的,我只是想连个 hive 而已

- hive-driver 卡在 open-session ,包也不维护了
- npm jdbc 卡在 jni_md.h ,也许是 $JAVA_HOME 的问题,也想到用户的电脑上可能这种问题更多
- npm odbc 也没有跑起来

我现在的想法是自己打一个 fat jar 然后命令行调用吧
yinft
2022-09-22 15:01:11 +08:00
@debuggerx 卧槽 哈哈哈
debuggerx
2022-09-22 15:19:48 +08:00
“找各种 driver 找起来就好麻烦”???
https://cwiki.apache.org/confluence/display/Hive/HiveClient
frisktale
2022-09-22 15:22:21 +08:00
别的我不知道,c#和 golang 都是有统一的 db connection 规范的
sshang
2022-09-22 15:26:38 +08:00
@jchnxu @Bromine0x23

JDBC 全称叫 Java Database Connectivity ,是 Java 语言提供了一套用来访问数据库的 API 规范,具体来讲,可以理解为 java.sql 这个包。

类似的,Python 也有 Python Database API Specification ( https://peps.python.org/pep-0249/)。
qping
2022-09-22 15:30:44 +08:00
@jchnxu #17 hive 的 jdbc 驱动像一坨屎一样 依赖一堆的包
ipwx
2022-09-22 15:36:59 +08:00
原因是 JDBC 其实是比“某个数据库的 Driver”更高一层的抽象,试图规范这个语言下的所有 DB Driver 接口。这需要强大的语言掌控力。Java 是个最初由 Sun 推动的商业型语言,所以 JDBC 出现了。

如果某个语言需要,就需要有人牵头搞一个。但是很遗憾,JS/Python 这种社区型语言,你退出某个 Javascript XXX 别人也不买账。你看 npm 上各种包。。。

====

其实 ORM 比 JDBC 封装层次更高,并不是要求各大 DB 遵守,而是反过来去适配各大 DB 的 driver 。ORM 才是更优解。
Aloento
2022-09-22 15:39:19 +08:00
entity framework 表示很 j
dcsuibian
2022-09-22 15:59:15 +08:00
是的,我之前也遇到过这个问题,没找到统一的上层接口。
这样看来 Java 还真适合工程应用。
ttwxdly
2022-09-22 16:04:08 +08:00
1
hush3
2022-09-22 16:42:23 +08:00
@debuggerx 🐔你太煤~ baby
Mrzhs
2022-09-22 16:49:26 +08:00
@hush3 小黑子无处不在
onice
2022-09-22 17:34:08 +08:00
jdbc ,开头的 j 是指的 java 。要想通用点,就用 odbc 吧。
zoharSoul
2022-09-22 18:42:43 +08:00
@debuggerx #2 可能是 js, /狗头
jchnxu
2022-09-22 21:10:49 +08:00
@debuggerx #26 感谢老哥,我还真没想到要去找 hive 官网,因为同时在找其他的 db
jchnxu
2022-09-22 21:14:47 +08:00
@ipwx #30 有道理。

我的原意是,实现本身应该不复杂,就怕有什么骚操作所以其他语言没有类似的东西。

我想其实连接 db 无非就是 host, port, credentials, db 这些参数。然后弄一个连接池,如果是分布式的实现相应的协议。所以想当然以为所有语言都该有了。
jchnxu
2022-09-22 21:15:20 +08:00
fat jar 打出来了,python 的方案也跑通了,再次感谢大家!

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

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

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

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

© 2021 V2EX