1#ifndef NEFORCE_DATABASE_MYSQL_CONNECT_HPP__
2#define NEFORCE_DATABASE_MYSQL_CONNECT_HPP__
11#ifdef NEFORCE_SUPPORT_MYSQL
12# include <mysql/mysql.h>
14NEFORCE_BEGIN_NAMESPACE__
47 mutable string last_error_;
101 NEFORCE_NODISCARD
bool set_options(::mysql_option option, const
string& str) const noexcept;
126 NEFORCE_NODISCARD
bool update(const
string& sql) const override;
147 NEFORCE_NODISCARD
bool connected() const noexcept
override {
return link_ !=
nullptr; }
153 NEFORCE_NODISCARD
bool is_valid() const noexcept
override { return ::mysql_ping(
link_) == 0; }
155 size_t batch_insert(
const string& table,
const vector<string>& columns,
159 string begin_sql() {
return "START TRANSACTION"; }
160 string commit_sql() {
return "COMMIT"; }
161 string rollback_sql() {
return "ROLLBACK"; }
162 string table_exists_query(
const string& table)
const {
return "SHOW TABLES LIKE '" + table +
"'"; }
206NEFORCE_END_NAMESPACE__
idb_factory(db_config config) noexcept
构造函数
idb_connect * create_connect() override
创建MySQL连接对象
idb_result * create_result(void *native_result) override
创建MySQL结果集对象
mysql_factory(db_config config) noexcept
构造函数
unsigned int uint32_t
32位无符号整数类型
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
basic_string_view< char > string_view
字符字符串视图
virtual void close()=0
关闭连接
unique_ptr< idb_prepared_statement > prepare_statement(const string &sql) const override
创建预处理语句
bool connected() const noexcept override
检查连接是否已建立
bool set_character_set(const string &encoding) noexcept override
设置字符集
void close() noexcept override
关闭数据库连接
bool set_options(::mysql_option option, const string &str) const noexcept
设置MySQL连接选项
unique_ptr< idb_tb_result > query(const string &sql) const override
执行查询SQL语句
bool update(const string &sql) const override
执行非查询SQL语句
bool reconnect(const db_config &config) override
重新连接数据库
string_view get_character_set() const noexcept override
获取当前字符集
bool connect(const db_config &config) override
建立数据库连接
uint32_t get_errno() const noexcept override
获取最后错误码
bool is_valid() const noexcept override
检查连接是否有效
~mysql_connect() noexcept override
析构函数
string_view get_error() const noexcept override
获取最后错误信息