我想了解JDBC和MySQL DB之间的交互是如何进行的。
据我所知,MYSQL服务器是用C/C++语言编写的。现在,我们使用JDBC API与MYSQL DB进行与数据库相关的交互。MYSQL提供JDBC驱动程序,这些驱动程序被加载到应用程序中。
我相信JDBC驱动程序是用Java (纯Java JDBC驱动程序)编写的,那么假设MYSQL DB运行在不同的物理服务器上,那么Java程序和MYSQL DB (用C编写)之间的这种交互是如何发生的呢?
这是怎么回事?有人能帮我理解这个吗?
发布于 2017-05-04 19:47:52
JDBC驱动程序分为四个不同的类别:
ODBC 1:ODBC-
对于类型1,JDBC-ODBC桥通过一个或多个ODBC驱动程序提供JDBC API访问。Java2: Java
本机API部分支持Java技术的驱动程序将JDBC调用转换为客户机APIJava3上的调用:网络协议,全Java驱动程序
完全支持Java技术的网络协议驱动程序将JDBC API调用转换为独立于DBMS的网络协议,然后由server.
本机协议完全支持Java技术的驱动程序将JDBC技术调用转换为DBMS直接使用的网络协议。
据我所知(如果我错了,请纠正我)类型3和类型4是业界最常用的类型,因为它们通常提供更好的性能和可伸缩性。
如果您正在寻找有关JDBC驱动程序及其工作方式的更具体/详细的信息,请参阅Oracle's documentation或查看此tutorial,在这里您可以了解如何自己实际实现JDBC驱动程序。
发布于 2017-05-04 19:50:28
这种交互与mysql实现或客户端实现所使用的语言无关。这是使用TCP/IP (传输控制协议/网际协议)的纯网络通信,TCP/IP是两个网络主机之间的标准通信语言或协议。
那么jdbc的角色在哪里呢?简单地说,jdbc只是创建由TCP/IP协议头包装的数据有效负载,并发送到mysql主机。在接收到网络请求时,mysql主机将数据有效载荷解包,并将其传递给mysql服务器应用程序,由于数据有效载荷是由jdbc创建的,因此mysql服务器可以对其进行解析和理解。
https://stackoverflow.com/questions/43781677
复制相似问题