type Stmt
type Stmt接口主要用于预编译SQL语句,常用方法如表1所示。
| 方法 | 描述 | 返回值类型 |
| (s *Stmt)Close() | 关闭给定的预处理语句。 | error |
| (s *Stmt)Exec(args ...interface{}) | 使用给定的参数执行预处理语句,并返回一个Result值。支持PBE特性。PBE,即Prepare-Bind-Execute,是发送和执行查询的一种方式,DN可通过复杂查询协议接收PBE报文执行语句。 说明:
| Result, error |
| (s *Stmt)ExecContext(ctx context.Context, args ...interface{}) | 在给定的上下文中,使用给定的参数执行预处理语句,并返回一个Result值。 | Result, error |
| (s *Stmt)Query(args ...interface{}) | 使用给定的参数执行预处理语句,并以*Rows形式返回查询结果。 | *Rows, error |
| (s *Stmt)QueryContext(ctx context.Context, args ...interface{}) | 在给定的上下文中,使用给定的参数执行预处理语句,并以*Rows形式返回查询结果。 | *Rows, error |
| (s *Stmt)QueryRow(args ...interface{}) | 使用给定的参数执行预处理语句,并返回一个*Row作为结果。 | *Row |
| (s *Stmt)QueryRowContext (ctx context.Context, args ...interface{}) | 在给定的上下文中,使用给定的参数执行预处理语句,并返回一个*Row作为结果。 | *Row |
参数说明
| 参数 | 参数说明 |
| ctx | 表示给定的上下文。 |
| args | 被执行SQL语句需要绑定的参数。支持按位置绑定和按名称绑定,参见示例。 |
- Query类方法Query()、QueryContext()、QueryRow()、QueryRowContext()通常用于查询语句,如SELECT语句。操作语句使用Exec()类方法执行,若非查询语句通过Query类方法执行,则执行结果可能与预期不符,因此不建议使用Query类方法执行非查询语句,例如UPDATE、INSERT等。
- 使用Query类方法执行查询语句的结果需要通过type Rows中Next()方法获取,若不通过Next()方法获取,可能会产生不可预期的错误。