根據Go結構體生成SQL語句的GO工具:sqlgen
sqlgen 能夠從你的Go結構體生成SQL語句和數據庫幫助類函數。它可以代替一個簡單的ORM或手寫SQL使用。
安裝
Install or upgrade with this command:
go get -u github.com/drone/sqlgen
使用
Usage of sqlgen: -type string type to generate; required -file string input file name; required -o string output file name -pkg string output package name -db string sql dialect; sqlite, postgres, mysql -schema generate sql schema and queries; default true -funcs generate sql helper functions; default true
Tutorial
First, let's start with a simpleUserstruct inuser.go:
type User struct { ID int64 Login string Email string }
We can run the following command:
sqlgen -file user.go -type User -pkg demo
The tool outputs the following generated code:
func ScanUser(row *sql.Row) (*User, error) { var v0 int64 var v1 string var v2 string err := row.Scan( &v0, &v1, &v2, ) if err != nil { return nil, err } v := &User{} v.ID = v0 v.Login = v1 v.Email = v2 return v, nil } const CreateUserStmt = ` CREATE TABLE IF NOT EXISTS users ( user_id INTEGER ,user_login TEXT ,user_email TEXT ); ` const SelectUserStmt = ` SELECT user_id ,user_login ,user_email FROM users ` const SelectUserRangeStmt = ` SELECT user_id ,user_login ,user_email FROM users LIMIT ? OFFSET ? ` // more functions and sql statements not displayed
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!