doc database/sql Open package sql // import "database/sql" func Open(driverName, dataSourceName string) (*DB, error) Open opens a database specified by its database driver name and a driver-specific data source name, usually consisting of at least a database name and connection information. 日本語訳 Open関数は、データベースドライバ名と、ドライバ固有のデータソース名(通常、少なくとも データベース名と接続情報で構成されます)を指定することで、データベースを開きます。 9
| grep type | grep interface database/sql/driver に定義されている interface 15 type ColumnConverter interface{ ... } type Conn interface{ ... } type ConnBeginTx interface{ ... } type ConnPrepareContext interface{ ... } type Connector interface{ ... } type Driver interface{ ... } type DriverContext interface{ ... } type Execer interface{ ... } type ExecerContext interface{ ... } type NamedValueChecker interface{ ... } type Pinger interface{ ... } type Queryer interface{ ... } type QueryerContext interface{ ... } type Result interface{ ... } type Rows interface{ ... } type RowsColumnTypeDatabaseTypeName interface{ ... } type RowsColumnTypeLength interface{ ... } type RowsColumnTypeNullable interface{ ... } type RowsColumnTypePrecisionScale interface{ ... } type RowsColumnTypeScanType interface{ ... } type RowsNextResultSet interface{ ... } type SessionResetter interface{ ... } type Stmt interface{ ... } type StmtExecContext interface{ ... } type StmtQueryContext interface{ ... } type Tx interface{ ... } type Validator interface{ ... } type ValueConverter interface{ ... } type Valuer interface{ ... }
should implement Connector and DriverContext interfaces. If a Driver implements DriverContext, then database/sql.DB will call OpenConnector to obtain a Connector and then invoke that Connector's Connect method to obtain each needed connection, instead of invoking the Driver's Open method for each connection. A Connector can be passed to database/sql.OpenDB, to allow drivers to implement their own database/sql.DB constructors, or returned by DriverContext's OpenConnector method, to allow drivers access to context and to avoid repeated parsing of driver configuration.
Conn implementations should implement the following interfaces: Pinger, SessionResetter, and Validator. If named parameters or context are supported, the driver's Conn should implement: ExecerContext, QueryerContext, ConnPrepareContext, and ConnBeginTx. To support custom data types, implement NamedValueChecker.
support custom data types, implement NamedValueChecker. StmtExecContext enhances the Stmt interface by providing Exec with context. StmtQueryContext enhances the Stmt interface by providing Query with context.
multiple result sets are supported, Rows should implement RowsNextResultSet. If the driver knows how to describe the types present in the returned result it should implement the following interfaces: RowsColumnTypeScanType, RowsColumnTypeDatabaseTypeName, RowsColumnTypeLength, RowsColumnTypeNullable, and RowsColumnTypePrecisionScale. A given row value may also return a Rows type, which may represent a database cursor value.