graph LR
Statement["Statement"]
ResultSet["ResultSet"]
Batch["Batch"]
Connection["Connection"]
ODPI_C_Wrapper["ODPI-C Wrapper"]
DataConverter["DataConverter"]
Connection -- "creates" --> Statement
Connection -- "creates" --> Batch
Statement -- "uses" --> ODPI_C_Wrapper
Statement -- "creates" --> ResultSet
ResultSet -- "uses" --> ODPI_C_Wrapper
ResultSet -- "uses" --> DataConverter
Batch -- "uses" --> ODPI_C_Wrapper
Batch -- "uses" --> DataConverter
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
Represents a single, prepared SQL statement. It manages parameter binding, execution, and the creation of a ResultSet for queries. This is the primary workhorse for all SQL commands.
Related Classes/Methods:
stmt.go
Manages the result of a query execution. It acts as a forward-only cursor, providing an iterator (Next()) to access rows one by one from the underlying database cursor.
Related Classes/Methods:
rows.go
A specialized component for executing multiple, similar DML statements (e.g., INSERT) in a single database round-trip. It collects parameter sets and sends them as one operation to optimize performance.
Related Classes/Methods:
batch.go
Represents a database session and acts as a factory. It is responsible for creating Statement and Batch objects that will be executed within its transactional context.
Related Classes/Methods:
Conn.PrepareContext
A low-level abstraction layer that makes direct CGo calls to the ODPI-C library. It hides the complexity of C interoperability, memory management, and error handling from the rest of the driver.
Related Classes/Methods:
odpi.go
A crucial utility component responsible for the bidirectional conversion of data types between Go's native types (e.g., string, int64, time.Time) and Oracle's internal data formats.
Related Classes/Methods:
odpiData.go