sqlx

package
v0.0.0-...-65f1757 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConnectionString

func ConnectionString(filename string, options ...Option) string

ConnectionString erzeugt aus einem Dateinamen und Optionen einen DSN

func ExecuteScripts

func ExecuteScripts(db *sql.DB, scripts ...string) error

func NewTestDatabase

func NewTestDatabase(scripts ...string) (*sql.DB, error)

Types

type Cache

type Cache = Option
const (
	CACHE_Shared  Cache = "cache=shared"
	CACHE_Private Cache = "cache=private"
)

type DatabaseConstructor

type DatabaseConstructor func() (*sql.DB, error)

Funktionen des Typs DatabaseConstructor erzeugen SQL Datenbanken

type DatabaseInitFunc

type DatabaseInitFunc func(*sql.DB) error

Funktionen des Type DatabaseInitFunc initialisieren eine Datenbank

func Execute

func Execute(scripts ...string) DatabaseInitFunc

type ForeignKeys

type ForeignKeys = Option
const (
	FK_ENABLED  ForeignKeys = "_fk=true"
	FK_DISABLED ForeignKeys = "_fk=false"
)

type JournalMode

type JournalMode = Option
const (
	JOURNAL_DELETE   JournalMode = "_journal_mode=DELETE"
	JOURNAL_TRUNCATE JournalMode = "_journal_mode=TRUNCATE"
	JOURNAL_PERSIST  JournalMode = "_journal_mode=PERSIST"
	JOURNAL_MEMORY   JournalMode = "_journal_mode=MEMORY"
	JOURNAL_WAL      JournalMode = "_journal_mode=WAL"
	JOURNAL_OFF      JournalMode = "_journal_mode=OFF"
)

type LockingMode

type LockingMode = Option
const (
	LOCKING_NORMAL    LockingMode = "_locking_mode=NORMAL"
	LOCKING_EXCLUSIVE LockingMode = "_locking_mode=EXCLUSIVE"
)

type Mode

type Mode = Option
const (
	MODE_READONLY        Mode = "mode=ro"
	MODE_READWRITE       Mode = "mode=rw"
	MODE_READWRITECREATE Mode = "mode=rwc"
	MODE_MEMORY          Mode = "mode=memory"
)

type Mutex

type Mutex = Option
const (
	MUTEX_NO   Mutex = "_mutex=no"
	MUTEX_FULL Mutex = "_mutex=full"
)

type Option

type Option string

func (Option) String

func (o Option) String() string

type SqlTransactionManager

type SqlTransactionManager struct {
	// contains filtered or unexported fields
}

func NewSqlTransactionManager

func NewSqlTransactionManager(db *sql.DB) (*SqlTransactionManager, error)

func (*SqlTransactionManager) BeginTx

BeginTx startet eine Transaktion

Für den ersten Aufruf von BeginTx für den context.Context startet der Transaktionsmanager eine Datenbank-Transaktion. Für jeden weiteren Aufruf wird eine geschachtelte Transaktion erstellt, die mit der ursprünglichen Datenbank-Transaktion verkettet ist. Ein Rollback der geschachtelten Transaktion führ zu einem Rollback der Datenbank-Transaktion. Ein Commit der geschachtelten Transaktion hat keine Auswirkung auf die Datenbanktransaktion. Ein Rollback oder Commit einer beliebigen Transaktion, löst die Transaktion vom Transaktionmanager und übergibt die Kontrolle an die jeweils übergeordnete Transaktion zurück.

func (*SqlTransactionManager) Count

func (tm *SqlTransactionManager) Count() int

Count lifert die Anzahl offener Transaktionen

func (*SqlTransactionManager) GetDb

func (tm *SqlTransactionManager) GetDb() *sql.DB

type Synchronous

type Synchronous = Option
const (
	SYNC_OFF    Synchronous = "_synchronous=OFF"
	SYNC_NORMAL Synchronous = "_synchronous=NORMAL"
	SYNC_FULL   Synchronous = "_synchronous=FULL"
	SYNC_EXTRA  Synchronous = "_synchronous=EXTRA"
)

type Transaction

type Transaction interface {
	ExecContext(query string, args ...any) (sql.Result, error)
	QueryContext(query string, args ...any) (*sql.Rows, error)
	QueryRowContext(query string, args ...any) *sql.Row
	Commit() error
	Rollback() error
	Parent() Transaction
	Context() context.Context
}

type TransactionManager

type TransactionManager interface {
	BeginTx(ctx context.Context) (Transaction, error)
	Count() int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳