The upper.io/db.v3
package for Go is a productive data access layer for
Go that provides a common interface to work with different data sources such as
PostgreSQL,
MySQL, SQLite,
MSSQL,
QL and MongoDB.
go get upper.io/db.v3
Take the tour to see real live examples in your browser.
You can run the following example on our playground:
package main
import (
"log"
"upper.io/db.v3/postgresql"
)
var settings = postgresql.ConnectionURL{
Host: "demo.upper.io",
Database: "booktown",
User: "demouser",
Password: "demop4ss",
}
type Book struct {
ID int `db:"id"`
Title string `db:"title"`
AuthorID int `db:"author_id"`
SubjectID int `db:"subject_id"`
}
func main() {
sess, err := postgresql.Open(settings)
if err != nil {
log.Fatalf("db.Open(): %q\n", err)
}
defer sess.Close()
var books []Book
err = sess.Collection("books").Find().All(&books)
if err != nil {
log.Fatalf("Find(): %q\n", err)
}
for i, book := range books {
log.Printf("Book %d: %#v\n", i, book)
}
}
Or you can also run it locally from the _examples
directory:
go run _examples/booktown-books/main.go
2016/08/10 08:42:48 "The Shining" (ID: 7808)
2016/08/10 08:42:48 "Dune" (ID: 4513)
2016/08/10 08:42:48 "2001: A Space Odyssey" (ID: 4267)
2016/08/10 08:42:48 "The Cat in the Hat" (ID: 1608)
2016/08/10 08:42:48 "Bartholomew and the Oobleck" (ID: 1590)
2016/08/10 08:42:48 "Franklin in the Dark" (ID: 25908)
2016/08/10 08:42:48 "Goodnight Moon" (ID: 1501)
2016/08/10 08:42:48 "Little Women" (ID: 190)
2016/08/10 08:42:48 "The Velveteen Rabbit" (ID: 1234)
2016/08/10 08:42:48 "Dynamic Anatomy" (ID: 2038)
2016/08/10 08:42:48 "The Tell-Tale Heart" (ID: 156)
2016/08/10 08:42:48 "Programming Python" (ID: 41473)
2016/08/10 08:42:48 "Learning Python" (ID: 41477)
2016/08/10 08:42:48 "Perl Cookbook" (ID: 41478)
2016/08/10 08:42:48 "Practical PostgreSQL" (ID: 41472)
This is the source code repository, check out our release notes and see examples and documentation at upper.io/db.v3.
See CHANGELOG.md.
Licensed under MIT License
- José Carlos Nieto <jose.carlos@menteslibres.net>
- Peter Kieltyka <peter@pressly.com>
- Maciej Lisiewski <maciej.lisiewski@gmail.com>
- Max Hawkins <maxhawkins@google.com>
- Paul Xue <paul.xue@pressly.com>
- Kevin Darlington <kdarlington@gmail.com>
- Lars Buitinck <l.buitinck@esciencecenter.nl>
- icattlecoder <icattlecoder@gmail.com>
- Aaron <aaron.l.france@gmail.com>
- Hiram J. Pérez <worg@linuxmail.org>
- Julien Schmidt <github@julienschmidt.com>
- Max Hawkins <maxhawkins@gmail.com>
- Piotr "Orange" Zduniak <piotr@zduniak.net>
- achun <achun.shx@qq.com>
- rjmcguire <rjmcguire@gmail.com>
- wei2912 <wei2912_support@hotmail.com>