1#ifndef NEFORCE_DATABASE_DB_INTERFACE_HPP__
2#define NEFORCE_DATABASE_DB_INTERFACE_HPP__
24NEFORCE_BEGIN_NAMESPACE__
230 virtual bool update(
const string& sql)
const = 0;
296 virtual bool set(
const string& key,
const string& value) = 0;
297 virtual bool setex(
const string& key,
const string& value,
int seconds) = 0;
299 virtual bool del(
const string& key) = 0;
300 virtual bool exists(
const string& key) = 0;
303 virtual bool hset(
const string& key,
const string& field,
const string& value) = 0;
307 virtual bool lpush(
const string& key,
const string& value) = 0;
308 virtual bool rpush(
const string& key,
const string& value) = 0;
311 virtual bool sadd(
const string& key,
const string& member) = 0;
354NEFORCE_END_NAMESPACE__
virtual idb_result * create_result(void *native_result)=0
创建结果集对象
virtual idb_connect * create_connect()=0
创建数据库连接对象
idb_factory(db_config config)
构造函数
float float32_t
32位单精度浮点数类型
unsigned int uint32_t
32位无符号整数类型
long double decimal_t
扩展精度浮点数类型
long long int64_t
64位有符号整数类型
double float64_t
64位双精度浮点数类型
unsigned long long uint64_t
64位无符号整数类型
duration< int64_t, milli > milliseconds
毫秒持续时间
constexpr ToDur time_cast(const duration< Rep, Period > &value)
持续时间类型转换
duration< int64_t > seconds
秒持续时间
memory_view< const byte_t > cbyte_view
常量字节视图类型别名
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
basic_string_view< char > string_view
字符字符串视图
virtual bool connected() const =0
检查连接状态
virtual string_view get_error() const =0
获取错误信息
virtual uint32_t get_errno() const =0
获取错误码
void refresh_alive() noexcept
刷新连接存活时间
virtual bool reconnect(const db_config &config)=0
重新连接
virtual void close()=0
关闭连接
virtual bool connect(const db_config &config)=0
建立连接
virtual bool is_valid() const =0
检查连接有效性
virtual string_view get_character_set() const =0
获取字符集
virtual bool set_character_set(const string &encoding) const =0
设置字符集
milliseconds clock_type
存活时间计时器类型
virtual bool update(const string &sql) const =0
执行非查询SQL语句
NEFORCE_NODISCARD clock_type get_alive() const noexcept
获取连接空闲时间
virtual bool hset(const string &key, const string &field, const string &value)=0
设置哈希字段
virtual bool lpush(const string &key, const string &value)=0
左推入列表
virtual bool expire(const string &key, int seconds)=0
设置过期时间
virtual bool del(const string &key)=0
删除键
virtual bool sadd(const string &key, const string &member)=0
添加集合成员
virtual unique_ptr< idb_kv_result > get(const string &key)=0
获取键值
virtual unique_ptr< idb_kv_result > hget(const string &key, const string &field)=0
获取哈希字段
virtual unique_ptr< idb_kv_result > lrange(const string &key, int start, int stop)=0
获取列表范围
virtual unique_ptr< idb_kv_result > hgetall(const string &key)=0
获取所有哈希字段
virtual bool exists(const string &key)=0
检查键是否存在
virtual unique_ptr< idb_kv_result > query(const string &sql) const =0
执行键值存储查询命令
virtual bool setex(const string &key, const string &value, int seconds)=0
设置键值并指定过期时间
virtual bool set(const string &key, const string &value)=0
设置键值
virtual bool rpush(const string &key, const string &value)=0
右推入列表
virtual unique_ptr< idb_kv_result > smembers(const string &key)=0
获取所有集合成员
virtual string_view value() const =0
获取字符串值
virtual int64_t value_int64() const =0
获取64位整数值
virtual double value_double() const =0
获取浮点值
virtual vector< string > value_array() const =0
获取数组值
virtual bool value_bool() const =0
获取布尔值
virtual const vector< pair< string, string > > & value_hash() const =0
获取哈希表值
virtual string_view key() const =0
获取键
virtual bool execute()=0
执行非查询语句(UPDATE/INSERT/DELETE)
virtual uint32_t param_count() const noexcept=0
获取参数数量
virtual string_view get_error() const noexcept=0
获取错误信息
virtual unique_ptr< idb_prepared_result > execute_query()=0
执行查询语句(SELECT)
virtual bool bind_param(uint32_t index, const string &value)=0
绑定字符串
virtual uint32_t get_errno() const noexcept=0
获取错误码
virtual bool next()=0
移动到下一行
ptrdiff_t difference_type
差值类型
virtual bool empty() const =0
检查结果集是否为空
virtual unique_ptr< idb_prepared_statement > prepare_statement(const string &sql) const =0
创建预处理语句
virtual unique_ptr< idb_tb_result > query(const string &sql) const =0
执行查询SQL语句
virtual datetime get_datetime(size_type n) const =0
日期时间类型
virtual time get_time(size_type n) const =0
时间类型
virtual size_type column_count() const =0
获取结果集列数
virtual float64_t get_float64(size_type n) const =0
64位浮点数
virtual timestamp get_timestamp(size_type n) const =0
时间戳类型
virtual int32_t get_int32(size_type n) const =0
32位整数
virtual int64_t get_int64(size_type n) const =0
64位整数
virtual decimal_t get_decimal(size_type n) const =0
高精度十进制数
virtual float32_t get_float32(size_type n) const =0
32位浮点数
virtual size_type row_count() const =0
获取结果集行数
virtual uint64_t get_bit(size_type n) const =0
位字段值
virtual vector< char > get_blob(size_type n) const =0
BLOB二进制数据
virtual date get_date(size_type n) const =0
日期类型
virtual const vector< string_view > & column_names() const =0
获取所有列名
virtual bool get_bool(size_type n) const =0
布尔值
virtual string_view get(size_type n) const =0
字符串
virtual int16_t get_int16(size_type n) const =0
16位整数
static time_point now() noexcept
获取当前时间点