可以用不同语言编写的两个程序连接到同一个SQL数据库吗?

时间:2014-06-11 07:25:54

标签: sql node.js python-2.7

问题几乎在标题中,但这里有具体细节。对于我的高级设计项目,我们将编写软件来控制一些硬件并在Web前端显示诊断信息。为实现这一目标,我计划使用Python和nodejs的组合。从理论上讲,python服务脚本将通过bacnet IP和SQL数据库中的日志诊断信息与硬件进行通信。 nodejs JavaScript服务器代码将通过查询数据库并返回相关信息来响应Webfront请求。我对SQL很陌生,所以我的主要问题是......这可能吗?我的第二个也是更抽象的问题是......这是明智的吗?并且,在两端使用相同的语言有没有明显的优势,无论该语言是Python,Java还是其他什么?

3 个答案:

答案 0 :(得分:1)

<强> TL;博士

您可以使用为您选择的数据库服务器提供客户端的任何编程语言。

对于数据库服务器,只要客户端按照服务器的要求进行通信(即,它正在使用服务器的库,协议等),那么就没有区别使用什么编程语言或系统。


数据库驱动程序提供了一个公共抽象层,保证数据库服务器和客户端使用相同的语言。

编程语言与数据库驱动程序的接口负责语言细节 - 例如,提供符合语言的语法;而在另一方面,驱动程序将确保所有命令都以服务器期望的协议发送。

由于驱动程序是核心要求,因此通常有多个驱动程序可用于数据库;并且因为良好的数据库访问是程序员的核心要求,每种语言都努力拥有一个标准&#34;所有数据库的API。例如,Java有JDBC Python有DB-API,.NET有ODBC(我相信ADO,但我不是.NET专家)。

这些是数据库驱动程序将遵循的内容,因此您使用的数据库服务器并不重要,您有一​​种标准的连接方式,一种执行查询的标准方法和一种获取结果的标准方法 - 实际上,让你的程序员生活更轻松。

在大多数情况下,数据库供应商提供了一个参考驱动程序(和API /库)。它通常在C中,它也是&#34; native&#34;客户端到数据库使用。例如,MySQL数据库服务器的mysql 客户端使用MySQL C驱动程序进行连接,它与Python MySQLdb驱动程序使用的驱动程序相同;它符合Python DB-API。

答案 1 :(得分:0)

是的,可能。

使用一个数据库的两个使用不同语言的应用程序几乎与使用多个连接的应用程序完全相同,因此您可能已经在使用它。所有可能的问题都完全一样。数据库甚至不知道连接是来自一个应用程序还是另一个应用程序。

答案 2 :(得分:0)

这是非常可能和常见的做法。可能存在一些部分,您必须围绕数据编写应用程序,而不是相反,但这是可行的。

如果您在每个应用程序中使用大部分相同的查询,我还建议尽可能使用Stored Procedures