1#ifndef NEFORCE_DATABASE_DB_INTERFACE_HPP__
2#define NEFORCE_DATABASE_DB_INTERFACE_HPP__
24NEFORCE_BEGIN_NAMESPACE__
54 NEFORCE_NODISCARD
virtual bool empty()
const = 0;
240 NEFORCE_NODISCARD
virtual bool update(
const string& sql)
const = 0;
256 NEFORCE_NODISCARD
virtual bool is_valid()
const = 0;
308 virtual size_t batch_insert(
const string& table,
const vector<string>& columns,
316 NEFORCE_NODISCARD
virtual bool table_exists(
const string& table)
const = 0;
336 virtual bool set(
const string& key,
const string& value) = 0;
337 virtual bool setex(
const string& key,
const string& value,
int seconds) = 0;
339 virtual bool del(
const string& key) = 0;
340 virtual bool exists(
const string& key) = 0;
343 virtual bool hset(
const string& key,
const string& field,
const string& value) = 0;
347 virtual bool lpush(
const string& key,
const string& value) = 0;
348 virtual bool rpush(
const string& key,
const string& value) = 0;
351 virtual bool sadd(
const string& key,
const string& member) = 0;
400NEFORCE_END_NAMESPACE__
virtual idb_connect * create_connect()=0
创建数据库连接对象
idb_factory(db_config config) noexcept
构造函数
virtual idb_result * create_result(void *native_result)=0
创建结果集对象
float float32_t
32位单精度浮点数类型
unsigned int uint32_t
32位无符号整数类型
unsigned long uint64_t
64位无符号整数类型
long double decimal_t
扩展精度浮点数类型
double float64_t
64位双精度浮点数类型
duration< int64_t > seconds
秒持续时间
constexpr ToDur time_cast(const duration< Rep, Period > &value)
持续时间类型转换
duration< int64_t, milli > milliseconds
毫秒持续时间
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
字符字符串视图
milliseconds clock_type
存活时间计时器类型
virtual uint32_t get_errno() const =0
获取错误码
virtual bool set_character_set(const string &encoding)=0
设置字符集
virtual bool connected() const =0
检查连接状态
void refresh_alive() noexcept
刷新连接存活时间
virtual void * native_handle() noexcept=0
获取原生连接句柄
virtual bool update(const string &sql) const =0
执行非查询SQL语句
virtual bool is_valid() const =0
检查连接有效性
clock_type get_alive() const noexcept
获取连接空闲时间
virtual bool rollback()=0
回滚事务
virtual bool reconnect(const db_config &config)=0
重新连接
virtual bool commit()=0
提交事务
virtual string_view get_error() const =0
获取错误信息
virtual string_view get_character_set() const =0
获取字符集
virtual bool begin()=0
开始事务
virtual bool connect(const db_config &config)=0
建立连接
virtual void close()=0
关闭连接
virtual bool lpush(const string &key, const string &value)=0
左推入列表
virtual unique_ptr< idb_kv_result > get(const string &key)=0
获取键值
virtual unique_ptr< idb_kv_result > query(const string &sql) const =0
执行键值存储查询命令
virtual bool rpush(const string &key, const string &value)=0
右推入列表
virtual bool sadd(const string &key, const string &member)=0
添加集合成员
virtual unique_ptr< idb_kv_result > hget(const string &key, const string &field)=0
获取哈希字段
virtual bool set(const string &key, const string &value)=0
设置键值
virtual bool exists(const string &key)=0
检查键是否存在
virtual unique_ptr< idb_kv_result > hgetall(const string &key)=0
获取所有哈希字段
virtual bool expire(const string &key, int seconds)=0
设置过期时间
virtual bool setex(const string &key, const string &value, int seconds)=0
设置键值并指定过期时间
virtual bool del(const string &key)=0
删除键
virtual bool hset(const string &key, const string &field, const string &value)=0
设置哈希字段
virtual unique_ptr< idb_kv_result > smembers(const string &key)=0
获取所有集合成员
virtual unique_ptr< idb_kv_result > lrange(const string &key, int start, int stop)=0
获取列表范围
virtual const vector< pair< string, string > > & value_hash() const =0
获取哈希表值
virtual string_view key() const =0
获取键
virtual int64_t value_int64() const =0
获取64位整数值
virtual string_view value() const =0
获取字符串值
virtual vector< string > value_array() const =0
获取数组值
virtual bool value_bool() const =0
获取布尔值
virtual double value_double() const =0
获取浮点值
virtual bool execute()=0
执行非查询语句(UPDATE/INSERT/DELETE)
virtual bool bind_param(uint32_t index, const string &value)=0
绑定字符串
virtual unique_ptr< idb_tb_result > execute_query()=0
执行查询语句(SELECT)
virtual string_view get_error() const noexcept=0
获取错误信息
virtual uint32_t param_count() const noexcept=0
获取参数数量
virtual uint32_t get_errno() const noexcept=0
获取错误码
virtual bool empty() const =0
检查结果集是否为空
virtual bool next()=0
移动到下一行
ptrdiff_t difference_type
差值类型
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 size_type row_count() const =0
获取结果集行数
virtual bool get_bool(size_type n) const =0
布尔值
virtual timestamp get_timestamp(size_type n) const =0
时间戳类型
virtual int64_t get_int64(size_type n) const =0
64位整数
virtual int32_t get_int32(size_type n) const =0
32位整数
virtual decimal_t get_decimal(size_type n) const =0
高精度十进制数
virtual string_view get(size_type n) const =0
字符串
virtual vector< char > get_blob(size_type n) const =0
BLOB二进制数据
virtual uint64_t get_bit(size_type n) const =0
位字段值
virtual time get_time(size_type n) const =0
时间类型
virtual int16_t get_int16(size_type n) const =0
16位整数
virtual size_type column_count() const =0
获取结果集列数
virtual column_meta column_metadata(size_type n) const =0
获取列元数据
virtual date get_date(size_type n) const =0
日期类型
virtual float64_t get_float64(size_type n) const =0
64位浮点数
virtual const vector< string_view > & column_names() const =0
获取所有列名
virtual float32_t get_float32(size_type n) const =0
32位浮点数
virtual datetime get_datetime(size_type n) const =0
日期时间类型
static time_point now() noexcept
获取当前时间点