如何 运行 在 sqlx 中纯 sql

How to run pure sql in sqlx

sqlx 扩展了 database/sql 库并具有 Exec|Query 功能 运行 没有参数的纯 sql,但是当我尝试 运行 sqlx.Exec 它说 the sqlx have no Exec function。如何让 sqlx 运行 没有任何参数的纯 sql 方法?

github.com/jmoiron/sqlx is a package. Packages do not have methods, they may have functions.

Types may have methods. The sqlx.DB type is what you're looking for. It embeds the *sql.DB type which have a DB.Exec() 方法,它被提升并且在类型 *sqlx.DB 的值上也可用。

所以首先你需要一个 *sqlx.DB 值,通过连接到数据库,像这样:

db, err := sqlx.Connect("postgres", "user=foo dbname=bar sslmode=disable")
if err != nil {
    log.Fatalln(err)
}

这里db是类型*sqlx.DB。那么你可以使用Exec()方法:

result, err := db.Exec("SELECT * FROM mytable")