根據Go結構體生成SQL語句的GO工具:sqlgen

jopen 9年前發布 | 11K 次閱讀 sqlgen Google Go/Golang開發

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

項目主頁:http://www.baiduhome.net/lib/view/home/1442136607516

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