Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::db::DriverInstance类 参考abstract

数据库驱动实例类 更多...

#include <DriverInstance.h>

类 sese::db::DriverInstance 继承关系图:
sese::db::impl::MariaDriverInstanceImpl sese::db::impl::PostgresDriverInstanceImpl sese::db::impl::SqliteDriverInstanceImpl

Public 类型

using Ptr = std::unique_ptr<DriverInstance>
 

Public 成员函数

virtual ~DriverInstance () noexcept=default
 析构函数
 
virtual ResultSet::Ptr executeQuery (const char *sql) noexcept=0
 
virtual int64_t executeUpdate (const char *sql) noexcept=0
 
virtual PreparedStatement::Ptr createStatement (const char *sql) noexcept=0
 
virtual int getLastError () const noexcept=0
 
virtual const char * getLastErrorMessage () const noexcept=0
 
virtual bool setAutoCommit (bool enable) noexcept=0
 
virtual bool getAutoCommit (bool &status) noexcept=0
 
virtual bool rollback () noexcept=0
 
virtual bool commit () noexcept=0
 
virtual bool getInsertId (int64_t &id) const noexcept=0
 
virtual bool begin () noexcept=0
 
ErrorCode getErrorCode () const
 

详细描述

数据库驱动实例类

成员类型定义说明

◆ Ptr

构造及析构函数说明

◆ ~DriverInstance()

virtual sese::db::DriverInstance::~DriverInstance ( )
virtualdefaultnoexcept

析构函数

成员函数说明

◆ begin()

virtual bool sese::db::DriverInstance::begin ( )
nodiscardpure virtualnoexcept

◆ commit()

virtual bool sese::db::DriverInstance::commit ( )
nodiscardpure virtualnoexcept

◆ createStatement()

virtual PreparedStatement::Ptr sese::db::DriverInstance::createStatement ( const char * sql)
pure virtualnoexcept

创建预处理语句对象

参数
sqlSQL 语句
返回
预处理语句对象
返回值
nullptr创建失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

◆ executeQuery()

virtual ResultSet::Ptr sese::db::DriverInstance::executeQuery ( const char * sql)
pure virtualnoexcept

执行查询

参数
sql查询语句
返回
查询结果集
返回值
nullptr为查询失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

◆ executeUpdate()

virtual int64_t sese::db::DriverInstance::executeUpdate ( const char * sql)
pure virtualnoexcept

执行更新

参数
sql更新语句
返回
统计更新的行数
返回值
-1执行失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

◆ getAutoCommit()

virtual bool sese::db::DriverInstance::getAutoCommit ( bool & status)
nodiscardpure virtualnoexcept

查看自动提交是否打开

警告
因官方不支持 libpq 获取 autoCommit,在使用 postgresql 时建议使用命令行获取该值
返回值
false查看失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

◆ getErrorCode()

ErrorCode sese::db::DriverInstance::getErrorCode ( ) const
inline

◆ getInsertId()

virtual bool sese::db::DriverInstance::getInsertId ( int64_t & id) const
nodiscardpure virtualnoexcept

获取自增后的id

警告
因官方不支持 libpq 获取自增 Id,在使用 postgresql 时建议通过命令行使用 SELECT currval(pg_get_serial_sequence('tabName', 'colName')) 进行自增 Id 的获取;
返回值
false获取失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

◆ getLastError()

virtual int sese::db::DriverInstance::getLastError ( ) const
nodiscardpure virtualnoexcept

获取实例对应驱动的错误码

返回
错误码

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

被这些函数引用 getErrorCode().

◆ getLastErrorMessage()

virtual const char * sese::db::DriverInstance::getLastErrorMessage ( ) const
nodiscardpure virtualnoexcept

获取实例对应驱动的错误信息,需要判空

返回
错误信息

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.

被这些函数引用 getErrorCode().

◆ rollback()

virtual bool sese::db::DriverInstance::rollback ( )
nodiscardpure virtualnoexcept

◆ setAutoCommit()

virtual bool sese::db::DriverInstance::setAutoCommit ( bool enable)
nodiscardpure virtualnoexcept

设置事务自动提交

警告
因官方不支持 libpq 设置 autocommit,且 autoCommit 属性为全局级,在使用 postgresql 时建议使用 begin() 开启事务
因官方不支持 sqlite3 设置 autocommit,在使用 sqlite 时建议使用 begin() 开启事务
参数
enable设置自动提交
返回值
false设置失败

sese::db::impl::MariaDriverInstanceImpl, sese::db::impl::PostgresDriverInstanceImpl , 以及 sese::db::impl::SqliteDriverInstanceImpl 内被实现.


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