Documentation ¶
Overview ¶
Example (SqlDBBuilder) ¶
package main import ( "database/sql" "fmt" "os" "strconv" "github.com/cdleo/go-commons/logger" "github.com/cdleo/go-sqldb/adapter" "github.com/cdleo/go-sqldb/connector" ) type People struct { Id int `db:"id"` Nombre string `db:"firstname"` Apellido string `db:"lastname"` } func main() { sqlProxy := NewSQLProxyBuilder(connector.NewSqlite3Connector(":memory:")). WithAdapter(adapter.NewSQLite3Adapter()). WithLogger(logger.NewNoLogLogger()). Build() var sqlDB *sql.DB var err error if sqlDB, err = sqlProxy.Open(); err != nil { fmt.Println("Unable to connect to DB") os.Exit(1) } defer sqlProxy.Close() statement, err := sqlDB.Prepare("CREATE TABLE IF NOT EXISTS people (id INTEGER PRIMARY KEY, firstname TEXT, lastname TEXT)") if err != nil { fmt.Printf("Unable to prepare statement %v\n", err) os.Exit(1) } _, err = statement.Exec() if err != nil { fmt.Printf("Unable to exec statement %v\n", err) os.Exit(1) } statement, err = sqlDB.Prepare("INSERT INTO people (firstname, lastname) VALUES (?, ?)") if err != nil { fmt.Printf("Unable to prepare statement %v\n", err) os.Exit(1) } _, err = statement.Exec("Gene", "Kranz") if err != nil { fmt.Printf("Unable to exec statement %v\n", err) os.Exit(1) } rows, err := sqlDB.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 ¶
View Source
var DBEngines = []DBEngine{ Oracle, PostgreSQL, SQLite3, MockDB, }
View Source
var SQLSintaxTranslators = []SQLSintaxTranslator{ None, ToOracle, ToPostgreSQL, ToSQLite3, }
Functions ¶
This section is empty.
Types ¶
type SQLProxy ¶ added in v0.2.0
type SQLProxy struct {
// contains filtered or unexported fields
}
func (*SQLProxy) GetNextSequenceValue ¶ added in v0.2.0
type SQLProxyBuilder ¶ added in v0.2.0
type SQLProxyBuilder struct {
// contains filtered or unexported fields
}
func NewSQLProxyBuilder ¶
func NewSQLProxyBuilder(connector sqlcommons.SQLConnector) *SQLProxyBuilder
func (*SQLProxyBuilder) Build ¶ added in v0.2.0
func (s *SQLProxyBuilder) Build() *SQLProxy
func (*SQLProxyBuilder) WithAdapter ¶ added in v0.2.0
func (s *SQLProxyBuilder) WithAdapter(translator sqlcommons.SQLAdapter) *SQLProxyBuilder
func (*SQLProxyBuilder) WithLogger ¶ added in v0.2.0
func (s *SQLProxyBuilder) WithLogger(logger logger.Logger) *SQLProxyBuilder
type SQLSintaxTranslator ¶
type SQLSintaxTranslator string
const ( None SQLSintaxTranslator = "None" ToOracle SQLSintaxTranslator = "ToOracle" ToPostgreSQL SQLSintaxTranslator = "ToPostgreSQL" ToSQLite3 SQLSintaxTranslator = "ToSQLite3" )
Click to show internal directories.
Click to hide internal directories.