jdbc 是个啥原理啊

2022-09-22 07:14:47 +08:00
 jchnxu
发现没有 jdbc 的 node.js 实现。我寻思这玩意不就是 tcp 连接么,为啥没人写一个
7252 次点击
所在节点    程序员
48 条回复
jchnxu
2022-09-22 21:16:51 +08:00
@qping #29 是不是那个 thrift 协议的问题
jchnxu
2022-09-22 21:23:14 +08:00
@dcsuibian #32 后来咋解决的
qping
2022-09-22 21:42:08 +08:00
@jchnxu #41 没有细看 它会引起各种 jar 包冲突 不过你应该不存在这个问题
ys2016814
2022-09-22 22:00:47 +08:00
SPI 服务提供发现机制
cnbattle
2022-09-22 23:31:35 +08:00
每个语言特性,语法,生态,各不相同,所以一个语言设计实现的库包,较难在别的语言有好的实现或应用
ipwx
2022-09-23 10:54:44 +08:00
@jchnxu JDBC 其实是个很奇怪的抽象层。一方面它试图填补各个 DB driver 的差异性。但是 SQL 语言本身的差异性它又无法填补,就导致这玩意儿好像有点用,但其实毛用也没有,换个 DB 还得重写程序。毕竟所有语言的 DB driver 一般都能找得到完善的 connection pool 。

所以真要跨数据库写代码还是得上 ORM 。比如 Python SQLAlchemy 。
whileFalse
2022-09-23 13:13:27 +08:00
jdbc 就是 java 搞面向对象搞魔怔了的结果,除了 jdbc 还有 servlet 。
chaoschick
20 天前
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();
```

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

https://www.fyfyfm.apispeedy.workers.dev/t/882015

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

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

© 2021 V2EX