Documentation
¶
Overview ¶
Package db provides Pool for communicationg with Postgre database.
Example usage:
// Preparing database connection pool
DBPool, err := db.New(
fmt.Sprintf("host=%s port=%s user=%s password=%s database=%s",
config.Database.Host,
config.Database.Port,
config.Database.User,
config.Database.Password,
config.Database.Database),
logger,
config.Database.Connections.MaxIdle,
config.Database.Connections.MaxLife,
config.Database.Connections.MaxOpenIdle,
config.Database.Connections.MaxOpen,
)
// Creating table
_, err := DBPool.ExecContext(context.Background(), "CREATE TABLE IF NOT EXISTS dummy(name TEXT);")
if err != nil {
fmt.Fprintf(os.Stderr, "table creation failed: %v\n", err)
os.Exit(1)
}
// Adding data to table
_, err := DBPool.ExecContext(context.Background(), "insert into dummy(name) values($1)", "app item")
if err != nil {
fmt.Fprintf(os.Stderr, "Insert failed: %v\n", err)
os.Exit(1)
}
// Selecting data from table
rows, _ := DBPool.QueryContext(context.Background(), "select * from dummy")
for rows.Next() {
var name string
err := rows.Scan(&name)
if err != nil {
fmt.Fprintf(os.Stderr, "Scan failed: %v\n", err)
}
fmt.Printf("%s\n", name)
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Pool ¶
Pool of connections for interaction with Database
func New ¶
func New( dsn string, logger *log.Logger, connMaxIdle time.Duration, connMaxLife time.Duration, connMaxOpenIdle int, connMaxOpen int, ) (*Pool, error)
New creates Pool of tcp connections to database
DSN for TCP conn is specified as: fmt.Sprintf("host=%s user=%s password=%s port=%s database=%s", dbTcpHost, dbUser, dbPwd, dbPort, dbName)
DSN for Unix socket is specified as: fmt.Sprintf("user=%s password=%s database=%s host=%s/%s", dbUser, dbPwd, dbName, socketDir, instanceConnectionName)
Click to show internal directories.
Click to hide internal directories.