db

package
v0.0.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2021 License: MIT Imports: 6 Imported by: 0

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

type Pool struct {
	*sqlx.DB
}

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)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL