Socket
Socket
Sign inDemoInstall

github.com/17e10/go-sqlb

Package Overview
Dependencies
5
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    github.com/17e10/go-sqlb

sqlb パッケージは SQL 操作のユーティリティを提供します. sqlb は ORM (Object-Relational Mapping) のような大規模な仕組みではなく、 Go 標準パッケージの database/sql を容易に扱うためのユーティリティ群です. MySQL で使用する場合 次の import を追加してください. SQL を動的に組み立てる仕組みに Sqler インターフェイスを導入しています. Sqler は SQL 文字列が必要になったときに Writer に SQL を出力していくことで 高速かつメモリ効率よく SQL を生成します. 動的な SQL を簡潔に記述できる T 関数, M 関数を提供しています. これらの関数は SQL テンプレートに値や識別子, SQL を展開をできます. 構文は非常にシンプルながらとても柔軟かつ強力です. 値の展開: @ 1つの値を展開: 特別な展開: 識別子の展開: # 1つの識別子を展開: SQL の展開: $ 擬似イコール構文: == @, !== @


Version published

Readme

Source

go-sqlb

GoDev

go-sqlb パッケージは SQL 操作のユーティリティを提供します.

Usage

import "github.com/17e10/go-sqlb"

var extra []sqlb.Sqler

// 追加条件1 オーストラリア出身
extra = append(extra, sqlb.T("birthplace = @", "Australia"))

// 追加条件2 A から始まる名前
extra = append(extra, sqlb.T("(@ <= given_name AND given_name < @)", "A", "B"))

query := sqlb.M(`
    SELECT
        given_name, family_name
    FROM
        person
    WHERE
        gen = @gen
    AND $extra
`, map[string]any{
    "@gen":   3,
    "$extra": sqlb.And(extra...),
})

s, _ := sqlb.Stringify(query)
sqlb.Compact(s) == `SELECT given_name, family_name FROM person WHERE gen = 3 AND birthplace = 'Australia' AND ('A' <= given_name AND given_name < 'B')`

License

This software is released under the MIT License, see LICENSE.

Author

17e10

FAQs

Last updated on 11 Jul 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc