如何在 Buffalo 中执行 raw SQL?
How to execute raw SQL in Buffalo?
如何在 Buffalo 中执行原始 SQL 查询,而不必与 sqlx
建立自己的数据库连接?
澄清一下:我在database.yml
中定义了我的数据库连接,但我现在不想使用 Pop 模型。
您还可以使用 Pop 定义 RawQueries:https://godoc.org/github.com/gobuffalo/pop#Connection.RawQuery
在你的 Buffalo 动作中你可以这样做:
func (v myResource) MyMethod(c buffalo.Context) error {
// Get the DB connection from the context
tx, ok := c.Value("tx").(*pop.Connection) // you get your connection here
if !ok {
return errors.WithStack(errors.New("no transaction found"))
}
q := tx.RawQuery("select * from foo where id = ?", 1) // you make your query here
if err := q.All(model); err != nil {
return errors.WithStack(err)
}
}
这将是使用 Pop 而不是预定义模型的解决方案。在那种情况下,您只需使用 Buffalo 上下文附带的连接。
如何在 Buffalo 中执行原始 SQL 查询,而不必与 sqlx
建立自己的数据库连接?
澄清一下:我在database.yml
中定义了我的数据库连接,但我现在不想使用 Pop 模型。
您还可以使用 Pop 定义 RawQueries:https://godoc.org/github.com/gobuffalo/pop#Connection.RawQuery
在你的 Buffalo 动作中你可以这样做:
func (v myResource) MyMethod(c buffalo.Context) error {
// Get the DB connection from the context
tx, ok := c.Value("tx").(*pop.Connection) // you get your connection here
if !ok {
return errors.WithStack(errors.New("no transaction found"))
}
q := tx.RawQuery("select * from foo where id = ?", 1) // you make your query here
if err := q.All(model); err != nil {
return errors.WithStack(err)
}
}
这将是使用 Pop 而不是预定义模型的解决方案。在那种情况下,您只需使用 Buffalo 上下文附带的连接。