1
hefish 2022-09-22 07:21:57 +08:00 1
node 来实现 jdbc ? 我感觉用 php 实现更快一些。
|
2
debuggerx 2022-09-22 07:24:49 +08:00 via Android 33
你猜 jdbc 的那个 j 是啥意思?
|
3
KamenReborn 2022-09-22 07:33:47 +08:00 via Android
Java Database Connectivity
|
4
liangkang1436 2022-09-22 07:34:26 +08:00 via Android
@debuggerx 哈哈哈哈
|
5
panlatent 2022-09-22 07:34:31 +08:00 via iPhone 2
jdbc 抽调 node 的 d 再抽调 tcp 的 c 就只剩个 ..
|
6
mikeguan 2022-09-22 07:38:32 +08:00 via Android 1
大概率可以用 odbc
|
7
Tink 2022-09-22 07:50:46 +08:00 via Android
j
|
10
fredcc 2022-09-22 08:27:09 +08:00 via Android
Javascript DataBase Connectivity 没问题
|
11
bthulu 2022-09-22 08:31:00 +08:00 2
jdbc 的 j 难道不是 javascript 么?
|
12
cweijan 2022-09-22 08:38:57 +08:00
jdbc 只是一套规范, 各种驱动实现的只是接口, 内部就是 tcp 连接
|
14
wangtian2020 2022-09-22 08:42:51 +08:00 1
|
15
duanxianze 2022-09-22 08:54:30 +08:00 1
xswl 加油吧新人
|
16
kenvix 2022-09-22 09:06:18 +08:00
你用 ODBC 罢,真的
|
17
jchnxu OP @wangtian2020 #14 我主要是想接 hive
|
19
nba2k9 2022-09-22 09:31:09 +08:00
万物皆可 JavaScript 重写
|
20
Bromine0x23 2022-09-22 11:33:57 +08:00
说来其他语言有类似 JDBC 的规范吗
|
21
dqzcwxb 2022-09-22 11:36:59 +08:00
java database connectivity,简称 jdbc
|
22
L0L 2022-09-22 11:43:32 +08:00
你可能不需要 jdbc
|
23
lookStupiToForce 2022-09-22 11:52:35 +08:00 1
xswl 萌新很可爱
|
24
jchnxu OP @L0L #22 我也是这么想的,我只是想连个 hive 而已
- hive-driver 卡在 open-session ,包也不维护了 - npm jdbc 卡在 jni_md.h ,也许是 $JAVA_HOME 的问题,也想到用户的电脑上可能这种问题更多 - npm odbc 也没有跑起来 我现在的想法是自己打一个 fat jar 然后命令行调用吧 |
26
debuggerx 2022-09-22 15:19:48 +08:00
“找各种 driver 找起来就好麻烦”???
https://cwiki.apache.org/confluence/display/Hive/HiveClient |
27
frisktale 2022-09-22 15:22:21 +08:00
别的我不知道,c#和 golang 都是有统一的 db connection 规范的
|
28
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/)。 |
30
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 才是更优解。 |
31
Aloento 2022-09-22 15:39:19 +08:00
entity framework 表示很 j
|
32
dcsuibian 2022-09-22 15:59:15 +08:00
是的,我之前也遇到过这个问题,没找到统一的上层接口。
这样看来 Java 还真适合工程应用。 |
33
ttwxdly 2022-09-22 16:04:08 +08:00
1
|
36
onice 2022-09-22 17:34:08 +08:00
jdbc ,开头的 j 是指的 java 。要想通用点,就用 odbc 吧。
|
39
jchnxu OP @ipwx #30 有道理。
我的原意是,实现本身应该不复杂,就怕有什么骚操作所以其他语言没有类似的东西。 我想其实连接 db 无非就是 host, port, credentials, db 这些参数。然后弄一个连接池,如果是分布式的实现相应的协议。所以想当然以为所有语言都该有了。 |
40
jchnxu OP fat jar 打出来了,python 的方案也跑通了,再次感谢大家!
|
44
ys2016814 2022-09-22 22:00:47 +08:00
SPI 服务提供发现机制
|
45
cnbattle 2022-09-22 23:31:35 +08:00 via Android
每个语言特性,语法,生态,各不相同,所以一个语言设计实现的库包,较难在别的语言有好的实现或应用
|
46
ipwx 2022-09-23 10:54:44 +08:00
@jchnxu JDBC 其实是个很奇怪的抽象层。一方面它试图填补各个 DB driver 的差异性。但是 SQL 语言本身的差异性它又无法填补,就导致这玩意儿好像有点用,但其实毛用也没有,换个 DB 还得重写程序。毕竟所有语言的 DB driver 一般都能找得到完善的 connection pool 。
所以真要跨数据库写代码还是得上 ORM 。比如 Python SQLAlchemy 。 |
47
whileFalse 2022-09-23 13:13:27 +08:00 via iPhone
jdbc 就是 java 搞面向对象搞魔怔了的结果,除了 jdbc 还有 servlet 。
|
48
chaoschick 84 天前
Node.js 中有多个库可以用于连接和操作数据库,最常用的包括以下几个:
1. **MySQL**: - 使用 `mysql` 或 `mysql2` 库来连接 MySQL 数据库。 - 示例: ```javascript const mysql = require('mysql2'); const connection = mysql.createConnection({ host: 'localhost', user: 'yourUsername', password: 'yourPassword', database: 'yourDatabase' }); connection.connect(err => { if (err) { console.error('Error connecting to the database:', err); return; } console.log('Connected to the MySQL database.'); }); connection.query('SELECT * FROM yourTable', (err, results) => { if (err) { console.error('Error executing query:', err); return; } console.log('Query results:', results); }); connection.end(); ``` 2. **PostgreSQL**: - 使用 `pg` 库来连接 PostgreSQL 数据库。 - 示例: ```javascript const { Client } = require('pg'); const client = new Client({ host: 'localhost', user: 'yourUsername', password: 'yourPassword', database: 'yourDatabase' }); client.connect(err => { if (err) { console.error('Error connecting to the database:', err); return; } console.log('Connected to the PostgreSQL database.'); }); client.query('SELECT * FROM yourTable', (err, res) => { if (err) { console.error('Error executing query:', err); return; } console.log('Query results:', res.rows); }); client.end(); ``` 3. **SQLite**: - 使用 `sqlite3` 库来连接 SQLite 数据库。 - 示例: ```javascript const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('./yourDatabase.db'); db.serialize(() => { db.each('SELECT * FROM yourTable', (err, row) => { if (err) { console.error('Error executing query:', err); return; } console.log('Row:', row); }); }); db.close(); ``` |