根據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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!