首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据库和JDBC

问MySQL数据库和JDBC
EN

Stack Overflow用户
提问于 2017-05-04 19:30:07
回答 2查看 113关注 0票数 1

我想了解JDBC和MySQL DB之间的交互是如何进行的。

据我所知,MYSQL服务器是用C/C++语言编写的。现在,我们使用JDBC API与MYSQL DB进行与数据库相关的交互。MYSQL提供JDBC驱动程序,这些驱动程序被加载到应用程序中。

我相信JDBC驱动程序是用Java (纯Java JDBC驱动程序)编写的,那么假设MYSQL DB运行在不同的物理服务器上,那么Java程序和MYSQL DB (用C编写)之间的这种交互是如何发生的呢?

这是怎么回事?有人能帮我理解这个吗?

EN

回答 2

Stack Overflow用户

发布于 2017-05-04 19:47:52

JDBC驱动程序分为四个不同的类别:

ODBC 1:ODBC-

  • Type (开放式数据库连接)桥

对于类型1,JDBC-ODBC桥通过一个或多个ODBC驱动程序提供JDBC API访问。Java2: Java

  • Type,部分是驱动程序

本机API部分支持Java技术的驱动程序将JDBC调用转换为客户机APIJava3上的调用:网络协议,全Java驱动程序

完全支持Java技术的网络协议驱动程序将JDBC API调用转换为独立于DBMS的网络协议,然后由server.

  • Type 4:Native- protocol,all-Java驱动程序将其转换为DBMS协议

本机协议完全支持Java技术的驱动程序将JDBC技术调用转换为DBMS直接使用的网络协议。

据我所知(如果我错了,请纠正我)类型3和类型4是业界最常用的类型,因为它们通常提供更好的性能和可伸缩性。

如果您正在寻找有关JDBC驱动程序及其工作方式的更具体/详细的信息,请参阅Oracle's documentation或查看此tutorial,在这里您可以了解如何自己实际实现JDBC驱动程序。

票数 2
EN

Stack Overflow用户

发布于 2017-05-04 19:50:28

这种交互与mysql实现或客户端实现所使用的语言无关。这是使用TCP/IP (传输控制协议/网际协议)的纯网络通信,TCP/IP是两个网络主机之间的标准通信语言或协议。

那么jdbc的角色在哪里呢?简单地说,jdbc只是创建由TCP/IP协议头包装的数据有效负载,并发送到mysql主机。在接收到网络请求时,mysql主机将数据有效载荷解包,并将其传递给mysql服务器应用程序,由于数据有效载荷是由jdbc创建的,因此mysql服务器可以对其进行解析和理解。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43781677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档