import
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
// DB — интерфейс подключения к базе данных.
|
||||
type DB interface {
|
||||
Query(query string) error
|
||||
QueryRow(query string) error
|
||||
Exec(query string) error
|
||||
BeginTx() error
|
||||
BulkInsert(query string, args ...any) error
|
||||
Close() error
|
||||
}
|
||||
|
||||
// db — конкретная реализация, скрыта от внешних пакетов.
|
||||
type db struct {
|
||||
dsn string
|
||||
}
|
||||
|
||||
// New создаёт подключение к базе данных.
|
||||
func New(dsn string) (DB, error) {
|
||||
if dsn == "" {
|
||||
return nil, fmt.Errorf("dsn пустой")
|
||||
}
|
||||
|
||||
slog.Info("подключились к базе данных", "dsn", dsn)
|
||||
return &db{dsn: dsn}, nil
|
||||
}
|
||||
|
||||
// Query выполняет запрос на чтение.
|
||||
func (d *db) Query(query string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// QueryRow выполняет запрос, возвращающий одну строку.
|
||||
func (d *db) QueryRow(query string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Exec выполняет запрос на запись.
|
||||
func (d *db) Exec(query string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// BeginTx начинает транзакцию.
|
||||
func (d *db) BeginTx() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// BulkInsert выполняет массовую вставку.
|
||||
func (d *db) BulkInsert(query string, args ...any) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Close закрывает подключение к базе данных.
|
||||
func (d *db) Close() error {
|
||||
slog.Info("подключение к базе данных закрыто")
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user