acl  3.5.3.0
acl::query类 参考

#include <query.hpp>

+ 类 acl::query 继承关系图:
+ acl::query 的协作图:

Public 成员函数

 query ()
 
 ~query ()
 
querycreate_sql (const char *sql_fmt,...) ACL_CPP_PRINTF(2
 
query querycreate (const char *sql)
 
queryset_parameter (const char *name, const char *value)
 
queryset_parameter (const char *name, char value)
 
queryset_parameter (const char *name, short value)
 
queryset_parameter (const char *name, int value)
 
queryset_parameter (const char *name, float value, int precision=8)
 
queryset_parameter (const char *name, double value, int precision=8)
 
queryset_parameter (const char *name, long long int value)
 
queryset_date (const char *name, time_t value, const char *fmt="%Y-%m-%d %H:%M:%S")
 
queryset_format (const char *name, const char *fmt,...) ACL_CPP_PRINTF(3
 
query queryset_vformat (const char *name, const char *fmt, va_list ap)
 
const stringto_string ()
 
void reset ()
 

静态 Public 成员函数

static const stringescape (const char *in, size_t len, string &out)
 
static const char * to_date (time_t t, string &out, const char *fmt="%Y-%m-%d %H:%M:%S")
 

额外继承的成员函数

- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

SQL 查询语句查询器,该类会自动对 sql 中的一些特殊字符进行转义,使用方式类似于 java hibernate 的 SQL 语句构建方式

在文件 query.hpp16 行定义.

构造及析构函数说明

◆ query()

acl::query::query ( )

◆ ~query()

acl::query::~query ( )

成员函数说明

◆ create()

query query& acl::query::create ( const char *  sql)

创建 sql 语句,非变参方式

参数
sql{const char*} sql 语句,格式如: select * from xxx where name = :name and len >= :len 其中的 :name, :len 将由 set_parameter 中的值进行替换
返回
{query&}

◆ create_sql()

query& acl::query::create_sql ( const char *  sql_fmt,
  ... 
)

创建 sql 语句,变参方式,用法和 printf 类似

参数
sql_fmt{const char*} sql 语句,格式如: select * from xxx where name = :name and len >= d 其中的 :name, 将由 set_parameter 中的值进行替换, len 为整形值
返回
{query&}

◆ escape()

static const string& acl::query::escape ( const char *  in,
size_t  len,
string out 
)
static

对 sql 中的一些特殊字符进行转义处理,以防止 SQL 注入问题

参数
in{const char*} 变量值
len{size_t} in 数据长度
out{string&} 存储转换后的结果的缓冲区,该参数输入后会先被清空
返回
{const string&} 转义处理后的结果(其实是 out 的地址引用)

◆ reset()

void acl::query::reset ( )

清空查询器上一次的缓存数据,当该 SQL 查询器对象被多次使用时,应该提前调用 本函数清除之前的 SQL 查询器状态

◆ set_date()

query& acl::query::set_date ( const char *  name,
time_t  value,
const char *  fmt = "%Y-%m-%d %H:%M:%S" 
)

设置日期(time_t)类型的变量值

参数
name{const char*} 变量名
value{time_t} 变量值
fmt{const char*} 日期格式
返回
{query&}

◆ set_format()

query& acl::query::set_format ( const char *  name,
const char *  fmt,
  ... 
)

以变参方式设置变量值

参数
name{const char*} 变量名
fmt{const char*} 变参值格式
返回
{query&}

◆ set_parameter() [1/7]

query& acl::query::set_parameter ( const char *  name,
const char *  value 
)

设置字符串类型的变量值

参数
name{const char*} 变量名
value{const char*} 变量值
返回
{query&}

◆ set_parameter() [2/7]

query& acl::query::set_parameter ( const char *  name,
char  value 
)

设置字符类型的变量值

参数
name{const char*} 变量名
value{char} 变量值
返回
{query&}

◆ set_parameter() [3/7]

query& acl::query::set_parameter ( const char *  name,
short  value 
)

设置 16 位短整类型的变量值

参数
name{const char*} 变量名
value{short} 变量值
返回
{query&}

◆ set_parameter() [4/7]

query& acl::query::set_parameter ( const char *  name,
int  value 
)

设置 32 位短整类型的变量值

参数
name{const char*} 变量名
value{int} 变量值
返回
{query&}

◆ set_parameter() [5/7]

query& acl::query::set_parameter ( const char *  name,
float  value,
int  precision = 8 
)

设置单精度浮点类型的变量值

参数
name{const char*} 变量名
value{float} 单精度浮点类型
precision{int} 尾数的精度值
返回
{query&}

◆ set_parameter() [6/7]

query& acl::query::set_parameter ( const char *  name,
double  value,
int  precision = 8 
)

设置双精度浮点类型的变量值

参数
name{const char*} 变量名
value{double} 双精度浮点类型
precision{int} 尾数的精度值
返回
{query&}

◆ set_parameter() [7/7]

query& acl::query::set_parameter ( const char *  name,
long long int  value 
)

设置 64 位短整类型的变量值

参数
name{const char*} 变量名
value{long long int} 变量值
返回
{query&}

◆ set_vformat()

query query& acl::query::set_vformat ( const char *  name,
const char *  fmt,
va_list  ap 
)

以变参方式设置变量值

参数
name{const char*} 变量名
fmt{const char*} 变参值格式
ap{va_list} 变参值列表
返回
{query&}

◆ to_date()

static const char* acl::query::to_date ( time_t  t,
string out,
const char *  fmt = "%Y-%m-%d %H:%M:%S" 
)
static

将时间转换成 DateTime 格式的字符串(YYYY-MM-DD HH:MM:SS)

参数
t{time_t} 时间截
out{string&} 存储转换结果的缓冲区
fmt{const char*} 日期格式,在 _WIN32 下必须保证该格式的正确性, 否则 _WIN32 API 会产生断言,格式如:"%Y-%m-%d %H:%M:%S"
返回
{const char*} 转换后缓冲区地址,若返回 NULL 则表示转换失败

◆ to_string()

const string& acl::query::to_string ( )

对查询 sql 语句进行转义后返回给调用者

返回
{const string&}

该类的文档由以下文件生成: