Skip to content

Golang package extension for built-in database/sql

License

Notifications You must be signed in to change notification settings

avalchev94/sqlxt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sqlxt

sqlxt is a golang package which provides a simple extension to database/sql standard package.
It's still in development, so it must improve in the future with more features and tests.

Usage

For the whole example, go to example/example.go.
For more examples, go to scanner_test.go

package main

import (
	"database/sql"
	"fmt"
	"log"
	"os"

	"github.com/avalchev94/sqlxt"
	_ "github.com/lib/pq"
)

func testMap(db *sql.DB) {
	rows, err := db.Query("SELECT * FROM newspapers")
	if err != nil {
		log.Fatalln(err)
	}

	newspapers := map[string]interface{}{}
	if err := sqlxt.NewScanner(rows).Scan(newspapers); err != nil {
		log.Fatalln(err)
	}

	fmt.Println(newspapers)
}

func testStruct(db *sql.DB) {
	type Newspaper struct {
		ID      int32  `sql:"id"`
		Title   string `sql:"title"`
		Country string `sql:"country"`
	}

	rows, err := db.Query("SELECT * FROM newspapers")
	if err != nil {
		log.Fatalln(err)
	}

	newspapers := []Newspaper{}
	if err := sqlxt.NewScanner(rows).Scan(&newspapers); err != nil {
		log.Fatalln(err)
	}

	fmt.Println(newspapers)
}

func main() {
	db, err := connectDB()
  
  ...
  ...

	testMap(db)
	testStruct(db)
}

Install

go get -u github.com/avalchev94/sqlxt

About

Golang package extension for built-in database/sql

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages