Java JDBC物理与逻辑
在JDBCAPI中,我们主要处理连接、DriverManager和事务。 JDBC主要用于连接数据库和执行CRUD操作。所以我只需要知道在JDBC的较低级别上每个步骤是如何工作的 那么当我们执行Java JDBC物理与逻辑,java,oracle,jdbc,Java,Oracle,Jdbc,在JDBCAPI中,我们主要处理连接、DriverManager和事务。 JDBC主要用于连接数据库和执行CRUD操作。所以我只需要知道在JDBC的较低级别上每个步骤是如何工作的 那么当我们执行DriverManager.getConnection()时会发生什么?它是否在数据库端创建会话?是否创建了一个事务?连接基本上是什么 当我们执行语句时,数据库往返是如何发生的?幕后发生了什么?如何将数据从java应用程序传递到db,反之亦然 更新 所以基本上我只需要知道在java端和数据库端的每一步都发
DriverManager.getConnection()
时会发生什么?它是否在数据库端创建会话?是否创建了一个事务?连接基本上是什么
当我们执行语句时,数据库往返是如何发生的?幕后发生了什么?如何将数据从java应用程序传递到db,反之亦然
更新
所以基本上我只需要知道在java端和数据库端的每一步都发生了什么
实际上,JDBC只是一个接口。数据库端发生的事情取决于应用程序中使用的JDBC驱动程序。确切的细节实际上取决于驱动程序和数据库。但一般来说:打开连接是一个相对昂贵的操作,因此您通常希望在多个查询中重用同一连接。还有几种连接池的实现(只需进行一点搜索)。打开连接通常会建立到DBMS的网络连接(如果有网络连接;也有内存中的数据库),并对DB用户进行身份验证
一个连接不同于一个事务,一个连接中可以有多个事务。在java中,您主要使用
java.sql
包中指定的接口工作,您通常处理的类是DriverManager
,它允许您获得连接(一个让您可以访问所有其他结果集、语句等的界面)。我尝试向您概述在使用Oracle数据库时,在更常见的操作过程中会发生什么
DriverManager.getConnection
:它为您提供一个连接对象并创建一个会话(在数据库的v$session视图中可见)在服务器端。如果您查看,您可以看到创建连接的首选方法是使用数据源
,它可以提供连接池,即您创建固定数量的数据库连接(即数据库会话)在使用Oracle数据库时,连接池是一个非常受欢迎的功能,因为创建连接的成本很高(Oracle必须创建远程进程/线程等),并且一些sql解析数据(硬和软)保存在连接/会话级别这是一个粗略的概述,因为主题非常广泛,取决于您需要的详细程度;您可能会面临非常不同的配置,这些配置会改变java方面的实际情况。阅读jdbc规范。@Zelldon it说未经授权的请求OK试试这个