sqlingo/README.md

1.9 KiB

Travis CI Go Report Card codecov MIT license

sqlingo is a SQL DSL library in Go. It generates code from the database and lets you write SQL easily and correctly.

Tutorial

Install and use sqlingo code generator

In order to generate code, sqlingo requires your tables are already created in the database.

$ go get -u github.com/lqs/sqlingo/sqlingo-gen
$ mkdir -p generated/sqlingo
$ sqlingo-gen root:123456@/database_name >generated/sqlingo/database_name.dsl.go

Start using sqlingo

Create main.go to use the generated code

package main

import (
    "github.com/lqs/sqlingo"
    . "./generated/sqlingo"
)

func main() {
    db, err := sqlingo.Open("mysql", "root:123456@/database_name")
    if err != nil {
        panic(err)
    }
    
    // insert some rows
    customer1 := &CustomerModel{name: "Customer One"}
    customer2 := &CustomerModel{name: "Customer Two"}
    db.InsertInto(Customer).
        Values(customer1, customer2).
        Execute()

    // do some queries
    var customers []*CustomerModel
    db.SelectFrom(Customer).
        Where(Customer.Id.In(1, 2)).
        FetchAll(&customers)

    // more examples
    var customerId int64
    var orderId int64
    db.Select(Customer.Id, Order.Id).
        From(Customer, Order).
        Where(Customer.Id.Equals(Order.CustomerId), Order.Id.Equals(1)).
        FetchFirst(&customerId, &orderId)
}