go 使用sqlx

引入sqlx包
import ( 
	"fmt"
  	"github.com/jmoiron/sqlx"
)
定义数据库参数配置
var (
	sqlxdbConfig = DBConfig{
		Host:     "127.0.0.1", // ip
		Port:     5432,   // psql  5432
		UserName: "zyf",  // 用户名
		Password: "123",  // 密码
		DBName:   "sqlxdb",  // 数据库
	}
	sqlxdb    *sqlx.DB  
)

// 数据库配置
type DBConfig struct {
	Host     string
	Port     int32
	UserName string
	Password string
	DBName   string
}
函数处理
type Req struct{
	id   int   `json:"id" db:"id"`
}


// main函数
func main(){
	// 调链接数据库函数
	sqlxdb = postgres(sqlxdbConfig)
	
	// 一条sqlx使用查询实例 
	sqlxReq := make([]Req, 0)	
	sql := "select * from sqlx"
	if err := sqlxdb.Unsafe().Select(&sqlxReq, sql2); err != nil {
		fmt.Printf(" err:%v\n", err)
		return
	}
}

//ToString 表示连接数据库的字符串
func (c DBConfig) ToString() string {
	return fmt.Sprintf("host=%s port=%d user=%s "+
		"password=%s dbname=%s sslmode=disable", c.Host, c.Port,
		c.UserName, c.Password, c.DBName,
	)
}
func postgres(dbconfig DBConfig) *sqlx.DB {
	// 链接数据库
	db, err := sqlx.Open("postgres", dbconfig.ToString())
	if err != nil {
		fmt.Printf(err)
	}
	// 最大链接数
	db.SetMaxIdleConns(10)
	return db
}

详细sql语句使用查看官方文档:http://go-database-sql.org/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用sqlx库打印SQL语句的方法非常简单。sqlx是Go语言中一个强大的SQL执行库,它不仅提供了常用的SQL执行功能,还能轻松地打印生成的SQL语句。 首先,我们需要导入sqlx库,并创建一个SQL连接。连接可以使用sqlx.Open方法创建,并指定数据库类型和连接信息。例如,使用MySQL的连接可以像下面这样创建: db, err := sqlx.Open("mysql", "username:password@tcp(localhost:3306)/database") 接下来,我们可以使用sqlx库提供的Exec、Query和QueryRow等方法执行SQL语句。这些方法会返回sql.Result、sql.Rows和sql.Row等结果,我们可以通过调用Result对象的方法获取受影响的行数,或者通过Rows和Row对象的Scan方法获取查询结果。 要打印生成的SQL语句,我们可以使用db.Rebind方法,它会将SQL语句中的占位符替换为对应数据库的占位符。例如,MySQL的占位符是"?",而PostgreSQL的占位符是"$1"、"$2"等。 我们还可以使用sqlx内部提供的方法来打印生成的SQL语句。例如,通过调用sqlx包的NamedExec方法时,在下面的代码中,我们可以使用sqlx.Expand方法来打印生成的SQL语句: stmt, err := db.PrepareNamed("INSERT INTO mytable (name, age) VALUES (:name, :age)") expandedSQL, params, err := sqlx.Expand(stmt.SQL, stmt.NamedStmt.NamedArgs) fmt.Println(expandedSQL) 这样我们就可以打印出生成的SQL语句了。 总的来说,使用sqlx库打印SQL语句非常简单。只需要使用db.Rebind和sqlx.Expand等方法就可以轻松地获取生成的SQL语句。这对于调试和优化SQL语句非常有帮助,帮助我们更好地了解程序执行的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值