
1 hefish Sep 22, 2022 node 来实现 jdbc ? 我感觉用 php 实现更快一些。 |
2 debuggerx Sep 22, 2022 via Android 你猜 jdbc 的那个 j 是啥意思? |
3 KamenReborn Sep 22, 2022 via Android Java Database Connectivity |
4 liangkang1436 Sep 22, 2022 via Android @debuggerx 哈哈哈哈 |
5 panlatent Sep 22, 2022 via iPhone jdbc 抽调 node 的 d 再抽调 tcp 的 c 就只剩个 .. |
6 mikeguan Sep 22, 2022 via Android 大概率可以用 odbc |
7 Tink PRO j |
10 fredcc Sep 22, 2022 via Android Javascript DataBase Connectivity 没问题 |
11 bthulu Sep 22, 2022 jdbc 的 j 难道不是 Javascript 么? |
12 cweijan Sep 22, 2022 jdbc 只是一套规范, 各种驱动实现的只是接口, 内部就是 tcp 连接 |
14 wangtian2020 Sep 22, 2022 |
15 duanxianze Sep 22, 2022 xswl 加油吧新人 |
16 kenvix Sep 22, 2022 你用 ODBC 罢,真的 |
17 jchnxu OP @wangtian2020 #14 我主要是想接 hive |
19 nba2k9 Sep 22, 2022 万物皆可 Javascript 重写 |
20 Bromine0x23 Sep 22, 2022 说来其他语言有类似 JDBC 的规范吗 |
21 dqzcwxb Sep 22, 2022 java database connectivity,简称 jdbc |
22 L0L Sep 22, 2022 你可能不需要 jdbc |
23 lookStupiToForce Sep 22, 2022 xswl 萌新很可爱 |
24 jchnxu OP @L0L #22 我也是这么想的,我只是想连个 hive 而已 - hive-driver 卡在 open-session ,包也不维护了 - npm jdbc 卡在 jni_md.h ,也许是 $JAVA_HOME 的问题,也想到用户的电脑上可能这种问题更多 - npm odbc 也没有跑起来 我现在的想法是自己打一个 fat jar 然后命令行调用吧 |
26 debuggerx Sep 22, 2022 “找各种 driver 找起来就好麻烦”??? https://cwiki.apache.org/confluence/display/Hive/HiveClient |
27 frisktale Sep 22, 2022 别的我不知道,c#和 golang 都是有统一的 db connection 规范的 |
28 sshang Sep 22, 2022 @jchnxu @Bromine0x23 JDBC 全称叫 Java Database Connectivity ,是 Java 语言提供了一套用来访问数据库的 API 规范,具体来讲,可以理解为 java.sql 这个包。 类似的,Python 也有 Python Database API Specification ( https://peps.python.org/pep-0249/)。 |
30 ipwx Sep 22, 2022 原因是 JDBC 其实是比“某个数据库的 Driver”更高一层的抽象,试图规范这个语言下的所有 DB Driver 接口。这需要强大的语言掌控力。Java 是个最初由 Sun 推动的商业型语言,所以 JDBC 出现了。 如果某个语言需要,就需要有人牵头搞一个。但是很遗憾,JS/Python 这种社区型语言,你退出某个 Javascript XXX 别人也不买账。你看 npm 上各种包。。。 ==== 其实 ORM 比 JDBC 封装层次更高,并不是要求各大 DB 遵守,而是反过来去适配各大 DB 的 driver 。ORM 才是更优解。 |
31 Aloento Sep 22, 2022 entity framework 表示很 j |
32 dcsuibian Sep 22, 2022 是的,我之前也遇到过这个问题,没找到统一的上层接口。 这样看来 Java 还真适合工程应用。 |
33 ttwxdly Sep 22, 2022 1 |
36 onice Sep 22, 2022 jdbc ,开头的 j 是指的 java 。要想通用点,就用 odbc 吧。 |
39 jchnxu OP @ipwx #30 有道理。 我的原意是,实现本身应该不复杂,就怕有什么骚操作所以其他语言没有类似的东西。 我想其实连接 db 无非就是 host, port, credentials, db 这些参数。然后弄一个连接池,如果是分布式的实现相应的协议。所以想当然以为所有语言都该有了。 |
40 jchnxu OP fat jar 打出来了,python 的方案也跑通了,再次感谢大家! |
44 ys2016814 Sep 22, 2022 SPI 服务提供发现机制 |
45 cnbattle Sep 22, 2022 via Android 每个语言特性,语法,生态,各不相同,所以一个语言设计实现的库包,较难在别的语言有好的实现或应用 |
46 ipwx Sep 23, 2022 @jchnxu JDBC 其实是个很奇怪的抽象层。一方面它试图填补各个 DB driver 的差异性。但是 SQL 语言本身的差异性它又无法填补,就导致这玩意儿好像有点用,但其实毛用也没有,换个 DB 还得重写程序。毕竟所有语言的 DB driver 一般都能找得到完善的 connection pool 。 所以真要跨数据库写代码还是得上 ORM 。比如 Python SQLAlchemy 。 |
47 whileFalse Sep 23, 2022 via iPhone jdbc 就是 java 搞面向对象搞魔怔了的结果,除了 jdbc 还有 servlet 。 |
48 chaoschick Aug 31, 2024 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(); ``` |