abstract class DB::Connection

Overview

Database driver implementors must subclass Connection.

Represents one active connection to a database.

Users should never instantiate a Connection manually. Use DB#open or Database#connection.

Refer to QueryMethods for documentation about querying the database through this connection.

Note to implementors

The connection must be initialized in #initialize and closed in #do_close.

Override #build_prepared_statement method in order to return a prepared Statement to allow querying. Override #build_unprepared_statement method in order to return a unprepared Statement to allow querying. See also Statement to define how the statements are executed.

If at any give moment the connection is lost a DB::ConnectionLost should be raised. This will allow the connection pool to try to reconnect or use another connection if available.

Included Modules

Defined in:

lib/db/src/db/connection.cr
lib/db/src/db/error.cr
ext/db/connection.cr

Instance methods inherited from class Object

blank_for_validates_required? : Bool blank_for_validates_required?