【发布时间】:2021-06-13 12:55:03
【问题描述】:
当我们使用 PreparedStatement 执行 SQL 查询时(如此处所述 http://tutorials.jenkov.com/jdbc/preparedstatement.html),如果我们使用 SQL Server 或 Postgres 之类的数据库,executeQuery() 方法究竟做了什么?它将 SQL 查询直接转换为一组数据库操作,还是对数据库服务器进行网络调用,将 SQL 查询转换为数据库操作? 这通常是关于 SQL Server 等数据库如何工作的问题。我只是想知道它们是否在与调用 executeQuery() 的服务器不同的服务器上运行。
【问题讨论】:
-
“翻译查询”是什么意思?查询在服务器上准备好,然后使用您提供的参数集在服务器上执行。但是,每个数据库的详细信息有所不同。可能有 JDBC 驱动程序,其中驱动程序编译查询并在数据库服务器上执行低级操作,但这对于 SQL 是普通查询语言的数据库来说是不寻常的。
-
我的意思是获取 SQL 查询并将其转换为一组低级操作来执行它。我只是想知道它是在调用 executeQuery() 的同一台服务器上运行还是在专用数据库服务器上运行。
标签: jdbc