repositorypackage
0.0.0-20241231173832-8ba3353ee83d
Repository: https://github.com/clarkk/go-dbd.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
Install
go get -u github.com/clarkk/go-dbd
All packages are extremely simple and lightweight by design
- go-dbd/sqlc SQL compiler
go-dbd/sqlc
Compile complex MySQL queries as prepared statements.
Example
package main
import (
"fmt"
"github.com/clarkk/go-dbd/sqlc"
)
func main(){
select_query()
select_join_query()
insert_query()
update_query()
delete_query()
}
func select_query(){
query := sqlc.NewSelect("user").
Select([]string{
"id",
"name",
"email",
}).
Where(sqlc.Where().
Eq("email", "[email protected]"))
fmt.Println(query.Compile(), query.Data())
/*
SELECT id, name, email
FROM .user
WHERE email=?
*/
}
func select_join_query(){
query := sqlc.NewSelect("user").
Select([]string{
"id",
"c.timeout",
"name",
"email",
}).
Left_join("client", "c", "id", "client_id").
Where(sqlc.Where().
Eq("email", "[email protected]"))
fmt.Println(query.Compile(), query.Data())
/*
SELECT u.id, c.timeout, u.name, u.email
FROM .user u
LEFT JOIN .client c ON c.id=u.client_id
WHERE u.email=?
*/
}
func insert_query(){
query := sqlc.NewInsert("user").
Fields(map[string]any{
"name": "john",
"email": "[email protected]",
})
fmt.Println(query.Compile(), query.Data())
/*
INSERT .user
SET name=?, email=?
*/
}
func update_query(){
query := NewUpdate("user").
Fields(map[string]any{
"name": "michael",
}).
Where(Where().
Eq("id", 100))
fmt.Println(query.Compile(), query.Data())
/*
UPDATE .user
SET name=?
WHERE id=?
*/
}
func delete_query(){
query := NewDelete("user").
Where(Where().
Eq("id", 100))
fmt.Println(query.Compile(), query.Data())
/*
DELETE FROM .user
WHERE id=?
*/
}