Documentation
¶
Overview ¶
Example (SqlAdapter) ¶
package main
import (
"fmt"
"os"
"strconv"
adapter "github.com/cdleo/go-sql-adapter"
"github.com/cdleo/go-sql-adapter/engines"
"github.com/cdleo/go-sql-adapter/loggers"
"github.com/cdleo/go-sql-adapter/translators"
)
type People struct {
Id int `db:"id"`
Nombre string `db:"firstname"`
Apellido string `db:"lastname"`
}
func main() {
connector := engines.NewSqlite3Connector(":memory:")
translator := translators.NewNoopTranslator()
stdoutLogger := loggers.NewBasicLogger()
//stdoutLogger.SetLogLevel(logger.LogLevel_Trace.String())
sqlAdapter := adapter.NewSQLAdapter(connector, translator, stdoutLogger)
db, err := sqlAdapter.Open()
if err != nil {
fmt.Println("Unable to connect to DB")
os.Exit(1)
}
defer db.Close()
_, err = db.Exec("CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY, firstname TEXT, lastname TEXT)")
if err != nil {
fmt.Printf("Unable to execute statement %v\n", err)
os.Exit(1)
}
stmt, err := db.Prepare("INSERT INTO people (firstname, lastname) VALUES (?, ?)")
if err != nil {
fmt.Printf("Unable to prepare statement %v\n", err)
os.Exit(1)
}
_, err = stmt.Exec("Gene", "Kranz")
if err != nil {
fmt.Printf("Unable to exec statement %v\n", err)
os.Exit(1)
}
rows, err := db.Query("SELECT id, firstname, lastname FROM people")
if err != nil {
fmt.Printf("Unable to query data %v\n", err)
os.Exit(1)
}
var p People
for rows.Next() {
_ = rows.Scan(&p.Id, &p.Nombre, &p.Apellido)
fmt.Println(strconv.Itoa(p.Id) + ": " + p.Nombre + " " + p.Apellido)
}
}
Output: 1: Gene Kranz
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewSQLAdapter ¶
func NewSQLAdapter(connector SQLEngineConnector, translator SQLSyntaxTranslator, logger logger.Logger) *sqlAdapter
func Register ¶
func Register(connector SQLEngineConnector, translator SQLSyntaxTranslator, logger logger.Logger)
Types ¶
type MockSQLEngineConnector ¶
type MockSQLEngineConnector interface {
SQLEngineConnector
PatchBegin(err error)
PatchCommit(err error)
PatchRollback(err error)
PatchExec(query string, err error, args ...driver.Value)
PatchQuery(query string, columns []string, values []driver.Value, err error, args ...driver.Value)
PatchQueryRow(query string, result map[string]string, err error)
}
type SQLEngineConnector ¶
type SQLSyntaxTranslator ¶
Click to show internal directories.
Click to hide internal directories.


