NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
sql_connect_base.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_SQL_CONNECT_BASE_HPP__
2#define NEFORCE_DATABASE_SQL_CONNECT_BASE_HPP__
3
12
14NEFORCE_BEGIN_NAMESPACE__
15
21
37template <typename Derived>
39private:
40 Derived& derived() noexcept { return static_cast<Derived&>(*this); }
41 const Derived& derived() const noexcept { return static_cast<const Derived&>(*this); }
42
43public:
44 bool begin() final { return derived().update(derived().begin_sql()); }
45 bool commit() final { return derived().update(derived().commit_sql()); }
46 bool rollback() final { return derived().update(derived().rollback_sql()); }
47
48 NEFORCE_NODISCARD void* native_handle() noexcept final { return static_cast<Derived*>(this)->link_; }
49
50 NEFORCE_NODISCARD bool table_exists(const string& table) const override {
51 auto result = derived().query(derived().table_exists_query(table));
52 return result != nullptr && result->row_count() > 0;
53 }
54};
55 // Database
57
58NEFORCE_END_NAMESPACE__
59#endif // NEFORCE_DATABASE_SQL_CONNECT_BASE_HPP__
数据库抽象接口层
关系型数据库连接抽象基类
bool begin() final
开始事务
bool commit() final
提交事务
bool rollback() final
回滚事务
void * native_handle() noexcept final
获取原生连接句柄