Hello all,

After seeing a need for simplifying SQL databases in Go, I have written a 
new package that makes it very easy to do basic SELECT, INSERT, and UPDATE 
database operations. Essentially you define a struct that corresponds with 
the data in your database, and then you can simply pass that struct to my 
package to insert and retrieve data. I'm now using it in one of my 
projects, and it has reduced database-related code by 60%, making things 
much more readable!

Here's how easy it is to retrieve some info, make some changes, and return 
it to the database:

type SumoWreslter struct {
 Name string `db:"name"`
 Age int     `db:"age"`
 Rank string `db:"level"`
}

func main() {
 db, err := sqlez.Open("databaseDriver", "dataSource")

 tooOld := 30

 results, err := db.SelectFrom("wrestlers", SumoWreslter{}, sqlez.Params{
   Where: `age < ? AND level = "master"`,
   OrderBy: `age DESC`,
   Limit: 1,
 }, tooOld)

 theOne := results[0].(SumoWreslter)
 theOne.Rank = "grand master"
 // Manipulate data further

 _, err := db.Update("wrestlers", theOne, sqlez.Params{
   Where: `name = ?`,
   }, theOne.Name)
}

// Done!

I think it's a very handy tool, especially for getting started quickly. It 
can handle embedded structs, it can store and retrieve Go datatypes like 
structs and maps using JSON, and uses sql.NullString under the hood to 
avoid errors when trying to pull TEXT columns that are NILL.

I would love any feedback or suggestions, both on the code and the 
documentation I've written (which is geared more for people who are new-ish 
to Go).

Thanks!
James

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to