Golang Web Mvc Framework
simple database api.
db, err := OpenMysql("mymysql", "tcp:localhost:3306*dbname/username/pwd")
// you can use all the api in golang's database/sql
_, err = db.Query("select 1")
// or you can use some simple api provide by goku
r, err := db.Select("test_blog", SqlQueryInfo{
Fields: "id, title, content",
Where: "id>?",
Params: []interface{}{0},
Limit: 10,
Offset: 0,
Group: "",
Order: "id desc",
})
// insert map
vals := map[string]interface{}{
"title": "golang",
"content": "Go is an open source programming environment that " +
"makes it easy to build simple, reliable, and efficient software.",
"create_at": time.Now(),
}
r, err := db.Insert("test_blog", vals)
// insert struct
blog := TestBlog{
Title: "goku",
Content: "a mvc framework",
CreateAt: time.Now(),
}
r, err = db.InsertStruct(&blog)
// get struct
blog := &TestBlog{}
err = db.GetStruct(blog, "id=?", 3)
// get struct list
qi := SqlQueryInfo{}
var blogs []Blog
err := db.GetStructs(&blogs, qi)
// update by map
vals := map[string]interface{}{
"title": "js",
}
r, err2 := db.Update("test_blog", vals, "id=?", blog.Id)
// delete
r, err := db.Delete("test_blog", "id=?", 8)
checkout db_test.go
if you want to debug what the sql query is, set db.Debug to true
db, err := OpenMysql("mymysql", "tcp:localhost:3306*test_db/username/pwd")
db.Debug = true
after you set db.Debug to true, while you run a db command, it will print the sql query to the log, juse like this:
2012/07/30 20:58:03 SQL: UPDATE `user` SET friends=friends+? WHERE id=?;
PARAMS: [[1 2]]