Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Component = compogo.Component{ Init: compogo.StepFunc(func(container compogo.Container) error { return container.Provides( NewConfig, NewGenerator, ) }), Configuration: compogo.StepFunc(func(container compogo.Container) error { return container.Invoke(Configuration) }), }
Component — компонент SQL-генератора для Compogo. Регистрирует конфигурацию и генератор в DI-контейнере.
Пример подключения:
app.AddComponents(&db_sql_generator.Component)
var gen *goqu.DialectWrapper
container.Invoke(func(g *goqu.DialectWrapper) { gen = g })
// Генерация запроса
query, args, _ := gen.From("users").Where(goqu.C("id").Eq(1)).ToSQL()
rows, err := client.Query(query, args...)
Functions ¶
func NewGenerator ¶
NewGenerator создаёт новый SQL-генератор для указанного драйвера. Использует goqu.Dialect для генерации SQL-запросов в нужном диалекте.
Пример использования:
var gen *goqu.DialectWrapper
container.Invoke(func(g *goqu.DialectWrapper) { gen = g })
// Генерация SELECT
sql, args, _ := gen.From("users").Where(goqu.C("age").Gt(18)).ToSQL()
// SELECT * FROM users WHERE age > 18
// Генерация INSERT
sql, args, _ := gen.Insert("users").Rows(goqu.Record{"name": "John", "age": 30}).ToSQL()
// INSERT INTO users (name, age) VALUES ('John', 30)
// Генерация UPDATE
sql, args, _ := gen.Update("users").Set(goqu.Record{"age": 31}).Where(goqu.C("id").Eq(1)).ToSQL()
// UPDATE users SET age = 31 WHERE id = 1
func Registration ¶
Registration регистрирует соответствие между драйвером БД и диалектом goqu. Должна вызываться в init() каждого пакета драйвера.
Пример регистрации MySQL-драйвера:
func init() {
db_sql_generator.Registration("mysql", "mysql")
}
Пример регистрации PostgreSQL-драйвера:
func init() {
db_sql_generator.Registration("postgres", "postgres")
}
Types ¶
type Config ¶
type Config struct {
Driver string
}
Config содержит конфигурацию SQL-генератора.
func Configuration ¶
Configuration загружает конфигурацию из Configurator. Если Driver не задан и зарегистрирован только один драйвер, используется он.
Click to show internal directories.
Click to hide internal directories.