C++ MySQL DB pool Stack
0.10
|
MySQL DB pool 라이브러리 더 자세히 ...
클래스 | |
class | CDbMySQLConnection |
MySQL DB 연결 관리 및 쿼리 실행 클래스 더 자세히 ... | |
class | CDbMySQLPool |
MySQL DB connection pool 관리 클래스 더 자세히 ... | |
class | CDbMySQLQueue |
SQL 문을 저장하는 큐 자료구조 더 자세히 ... | |
class | CDbMySQLThreadArg |
MySQL 연동 쓰레드 인자 저장 클래스 더 자세히 ... |
함수 | |
bool | DbCheckSqlInjection (std::string &strValue) |
SQL injection 공격 문자열이 포함되어 있는지 검사한다. | |
bool | DbCheckSqlInjectionNotSlash (std::string &strValue) |
/ 를 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다. | |
bool | DbCheckSqlInjectionNotSpace (std::string &strValue) |
공백을 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다. | |
bool | DbCheckSqlInjectionNotMinus (std::string &strValue) |
'-' 를 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다. | |
void | DbReplaceSqlInjectionNotSpace (std::string &strValue) |
공백을 제외한 SQL injection 공격 문자열이 존재하면 공백으로 수정한다. | |
THREAD_API | DbMySQLThread (LPVOID lpParameter) |
MySQL 연동 쓰레드 | |
bool | StartDbMySQLThread (int iThreadCount, CDbMySQLQueue *pclsSqlQueue, const char *pszHost, const char *pszUserId, const char *pszPassWord, const char *pszDbName, int iPort, const char *pszCharacterSet) |
MySQL 연동 쓰레드들을 시작한다. | |
bool | StartDbMySQLThread (CDbMySQLConnection *pclsDbConn, CDbMySQLQueue *pclsSqlQueue) |
MySQL 연동 쓰레드를 시작한다. | |
void | StopDbMySQLThread () |
MySQL 연동 쓰레드에 중지 명령을 전송한다. | |
bool | IsDbMySQLThreadRun () |
MySQL 연동 쓰레드가 실행 중인지 검사한다. | |
bool | CDbMySQLConnection::Connect (const char *pszHost, const char *pszUserId, const char *pszPassWord, const char *pszDbName, int iPort, const char *pszCharacterSet=NULL) |
DB 에 연결한다. | |
void | CDbMySQLConnection::Close () |
DB 연결 종료한다. | |
bool | CDbMySQLConnection::Execute (const char *pszSQL) |
INSERT / UPDATE / DELETE SQL 문을 실행한다. | |
bool | CDbMySQLConnection::Insert (const char *pszSQL, uint64_t *piId) |
INSERT 문의 실행한다. | |
bool | CDbMySQLConnection::Query (const char *pszSQL, void *pclsData, bool(*FetchRow)(void *, MYSQL_ROW &sttRow)) |
SELECT 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, int &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, uint8_t &cData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, uint32_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, uint64_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, int64_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, std::string &strData) |
한 개의 row, column 을 가져오는 SQL 문을 실행한다. | |
bool | CDbMySQLConnection::QueryOne (const char *pszSQL, const char *pszArg, std::string &strData, int iDataSize) |
SELECT password(?) 와 같은 SQL 문을 실행한 결과를 가져온다. | |
bool | CDbMySQLConnection::Prepare (const char *pszSQL) |
prepareStmt 를 시작한다. | |
bool | CDbMySQLConnection::Bind (int iIndex, const char *pszVal) |
prepareStmt 로 bind 할 변수를 설정한다. | |
bool | CDbMySQLConnection::PrepareExecute (uint64_t *piId=NULL) |
prepareStmt 를 실행한다. | |
bool | CDbMySQLConnection::PrepareClose () |
prepareStmt 를 종료한다. | |
bool | CDbMySQLConnection::Execute (const char *pszSQL, int iArgCount,...) |
prepare statement 로 SQL INSERT, UPDATE, DELETE 명령을 수행한다. | |
bool | CDbMySQLConnection::Execute (const char *pszSQL, STRING_LIST &clsArgList) |
prepare statement 로 SQL INSERT, UPDATE, DELETE 명령을 수행한다. | |
uint64_t | CDbMySQLConnection::GetAffectedRow () |
It returns the number of rows changed, deleted, or inserted by the last statement if it was an UPDATE, DELETE, or INSERT. | |
uint32_t | CDbMySQLConnection::GetError () |
mysql_errno 를 리턴한다. | |
bool | CDbMySQLConnection::IsExistTable (const char *pszTableName) |
테이블이 존재하는지 검사한다. | |
void | CDbMySQLConnection::SetReadTimeout (int iSecond) |
MySQL read timeout 시간을 설정한다. | |
void | CDbMySQLConnection::SetWriteTimeout (int iSecond) |
MySQL write timeout 시간을 설정한다. | |
void | CDbMySQLConnection::SetLogLevel (EnumLogLevel eLogLevel) |
SQL 로그 레벨을 설정한다. | |
static void | CDbMySQLConnection::Final () |
MySQL 라이브러리 사용을 종료할 때에 호출하여서 메모리를 해제한다. | |
bool | CDbMySQLPool::Create (int iPoolCount, const char *pszHost, const char *pszUserId, const char *pszPassWord, const char *pszDbName, int iPort, const char *pszCharacterSet=NULL) |
DB 에 연결한다. | |
void | CDbMySQLPool::Destroy () |
DB pool 에 포함된 DB 연결을 해제하고 리소스를 정리한다. | |
bool | CDbMySQLPool::Select (CDbMySQLConnection **ppclsDbConn, bool bStandByUntilAvailable=true) |
DB pool 에서 DB 연결 객체를 가져온다. | |
void | CDbMySQLPool::Release (CDbMySQLConnection *pclsDbConn) |
DB 연결 객체를 DB pool 에 반환한다. | |
bool | CDbMySQLPool::Execute (const char *pszSQL) |
INSERT / UPDATE / DELETE SQL 문을 실행한다. | |
bool | CDbMySQLPool::Insert (const char *pszSQL, uint64_t *piId) |
INSERT 문의 실행한다. | |
bool | CDbMySQLPool::Query (const char *pszSQL, void *pclsData, bool(*FetchRow)(void *, MYSQL_ROW &sttRow)) |
SELECT 문을 실행한다. | |
bool | CDbMySQLPool::QueryOne (const char *pszSQL, int &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLPool::QueryOne (const char *pszSQL, uint32_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLPool::QueryOne (const char *pszSQL, uint64_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLPool::QueryOne (const char *pszSQL, int64_t &iData) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
bool | CDbMySQLPool::QueryOne (const char *pszSQL, std::string &strData) |
SELECT string 와 같은 1개의 row, column 인 SQL 문을 실행한다. | |
void | CDbMySQLPool::SetReadTimeout (int iSecond) |
MySQL read timeout 시간을 설정한다. | |
void | CDbMySQLPool::SetWriteTimeout (int iSecond) |
MySQL write timeout 시간을 설정한다. | |
bool | CDbMySQLQueue::Insert (const char *pszSQL) |
큐에 SQL 문자열을 입력한다. | |
bool | CDbMySQLQueue::Insert (const char *pszSQL, int iArgCount,...) |
큐에 동적 SQL 문자열을 입력한다. | |
bool | CDbMySQLQueue::Select (CDbMySQLQueueData &clsData, bool bWait=true) |
큐에서 SQL 문자열을 가져온다. | |
int | CDbMySQLQueue::GetSize () |
큐에 저장된 SQL 문자열의 개수를 리턴한다. | |
void | CDbMySQLQueue::Signal () |
큐에 SQL 문자열이 존재할 때까지 대기하는 쓰레드에게 이벤트를 전송한다. | |
void | CDbMySQLQueue::SetMaxSize (int iMaxSize) |
큐에 저장할 수 있는 SQL 문자열의 최대 개수를 설정한다. |
MySQL DB pool 라이브러리
bool CDbMySQLConnection::Bind | ( | int | iIndex, |
const char * | pszVal | ||
) |
prepareStmt 로 bind 할 변수를 설정한다.
iIndex | bind 변수 인덱스 |
pszVal | 값 |
void CDbMySQLConnection::Close | ( | ) |
DB 연결 종료한다.
bool CDbMySQLConnection::Connect | ( | const char * | pszHost, |
const char * | pszUserId, | ||
const char * | pszPassWord, | ||
const char * | pszDbName, | ||
int | iPort, | ||
const char * | pszCharacterSet = NULL |
||
) |
DB 에 연결한다.
pszHost | MySQL 호스트 이름 or IP 주소 |
pszUserId | MySQL 접속 아이디 |
pszPassWord | MySQL 접속 아이디의 비밀번호 |
pszDbName | MySQL 접속 데이터베이스 이름 |
iPort | MySQL 접속 포트 번호 |
pszCharacterSet | character set |
bool CDbMySQLPool::Create | ( | int | iPoolCount, |
const char * | pszHost, | ||
const char * | pszUserId, | ||
const char * | pszPassWord, | ||
const char * | pszDbName, | ||
int | iPort, | ||
const char * | pszCharacterSet = NULL |
||
) |
DB 에 연결한다.
iPoolCount | DB pool 에 포함될 DB 연결 개수 |
pszHost | MySQL 호스트 이름 or IP 주소 |
pszUserId | MySQL 접속 아이디 |
pszPassWord | MySQL 접속 아이디의 비밀번호 |
pszDbName | MySQL 접속 데이터베이스 이름 |
iPort | MySQL 접속 포트 번호 |
pszCharacterSet | character set |
bool DbCheckSqlInjection | ( | std::string & | strValue | ) |
SQL injection 공격 문자열이 포함되어 있는지 검사한다.
strValue | 검사 문자열 |
bool DbCheckSqlInjectionNotMinus | ( | std::string & | strValue | ) |
'-' 를 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다.
strValue | 검사 문자열 |
bool DbCheckSqlInjectionNotSlash | ( | std::string & | strValue | ) |
/ 를 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다.
strValue | 검사 문자열 |
bool DbCheckSqlInjectionNotSpace | ( | std::string & | strValue | ) |
공백을 제외한 SQL injection 공격 문자열이 포함되어 있는지 검사한다.
strValue | 검사 문자열 |
THREAD_API DbMySQLThread | ( | LPVOID | lpParameter | ) |
void DbReplaceSqlInjectionNotSpace | ( | std::string & | strValue | ) |
공백을 제외한 SQL injection 공격 문자열이 존재하면 공백으로 수정한다.
strValue | 검사 문자열 |
void CDbMySQLPool::Destroy | ( | ) |
DB pool 에 포함된 DB 연결을 해제하고 리소스를 정리한다.
bool CDbMySQLConnection::Execute | ( | const char * | pszSQL | ) |
INSERT / UPDATE / DELETE SQL 문을 실행한다.
pszSQL | SQL 문 |
bool CDbMySQLConnection::Execute | ( | const char * | pszSQL, |
int | iArgCount, | ||
... | |||
) |
prepare statement 로 SQL INSERT, UPDATE, DELETE 명령을 수행한다.
pszSQL | 동적 SQL 문 |
iArgCount | Bind 인자 개수 |
bool CDbMySQLConnection::Execute | ( | const char * | pszSQL, |
STRING_LIST & | clsArgList | ||
) |
prepare statement 로 SQL INSERT, UPDATE, DELETE 명령을 수행한다.
pszSQL | 동적 SQL 문 |
clsArgList | Bind 인자 리스트 |
bool CDbMySQLPool::Execute | ( | const char * | pszSQL | ) |
INSERT / UPDATE / DELETE SQL 문을 실행한다.
pszSQL | SQL 문 |
|
static |
MySQL 라이브러리 사용을 종료할 때에 호출하여서 메모리를 해제한다.
uint64_t CDbMySQLConnection::GetAffectedRow | ( | ) |
It returns the number of rows changed, deleted, or inserted by the last statement if it was an UPDATE, DELETE, or INSERT.
uint32_t CDbMySQLConnection::GetError | ( | ) |
mysql_errno 를 리턴한다.
int CDbMySQLQueue::GetSize | ( | ) |
큐에 저장된 SQL 문자열의 개수를 리턴한다.
bool CDbMySQLQueue::Insert | ( | const char * | pszSQL | ) |
큐에 SQL 문자열을 입력한다.
pszSQL | SQL 문자열 |
bool CDbMySQLQueue::Insert | ( | const char * | pszSQL, |
int | iArgCount, | ||
... | |||
) |
큐에 동적 SQL 문자열을 입력한다.
pszSQL | SQL 문자열 |
iArgCount | 인자 개수 |
... | 인자 리스트 |
bool CDbMySQLConnection::Insert | ( | const char * | pszSQL, |
uint64_t * | piId | ||
) |
INSERT 문의 실행한다.
pszSQL | SQL 문 |
piId | AUTO_INCREMENT 로 생성된 정수 저장 변수 |
bool CDbMySQLPool::Insert | ( | const char * | pszSQL, |
uint64_t * | piId | ||
) |
INSERT 문의 실행한다.
pszSQL | SQL 문 |
piId | AUTO_INCREMENT 로 생성된 정수 저장 변수 |
bool IsDbMySQLThreadRun | ( | ) |
MySQL 연동 쓰레드가 실행 중인지 검사한다.
bool CDbMySQLConnection::IsExistTable | ( | const char * | pszTableName | ) |
테이블이 존재하는지 검사한다.
pszTableName | 테이블 이름 |
bool CDbMySQLConnection::Prepare | ( | const char * | pszSQL | ) |
prepareStmt 를 시작한다.
pszSQL | SQL 문 |
bool CDbMySQLConnection::PrepareClose | ( | ) |
prepareStmt 를 종료한다.
bool CDbMySQLConnection::PrepareExecute | ( | uint64_t * | piId = NULL | ) |
prepareStmt 를 실행한다.
piId | AUTO_INCREMENT 로 생성된 정수 저장 변수 |
bool CDbMySQLConnection::Query | ( | const char * | pszSQL, |
void * | pclsData, | ||
bool(*)(void *, MYSQL_ROW &sttRow) | FetchRow | ||
) |
SELECT 문을 실행한다.
pszSQL | SQL 문 |
pclsData | 응용 프로그램 변수 |
FetchRow | 1개의 Row 마다 실행되는 함수 |
bool CDbMySQLPool::Query | ( | const char * | pszSQL, |
void * | pclsData, | ||
bool(*)(void *, MYSQL_ROW &sttRow) | FetchRow | ||
) |
SELECT 문을 실행한다.
pszSQL | SQL 문 |
pclsData | 응용 프로그램 변수 |
FetchRow | 1개의 Row 마다 실행되는 함수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
int & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
uint8_t & | cData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
cData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
uint32_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
uint64_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
int64_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
std::string & | strData | ||
) |
한 개의 row, column 을 가져오는 SQL 문을 실행한다.
pszSQL | SQL 문 |
strData | 검색 결과 저장 변수 |
bool CDbMySQLConnection::QueryOne | ( | const char * | pszSQL, |
const char * | pszArg, | ||
std::string & | strData, | ||
int | iDataSize | ||
) |
SELECT password(?) 와 같은 SQL 문을 실행한 결과를 가져온다.
pszSQL | SQL 문 |
pszArg | bind 할 문자열 |
strData | 결과를 저장할 변수 |
iDataSize | 결과 문자열의 최대 길이 |
bool CDbMySQLPool::QueryOne | ( | const char * | pszSQL, |
int & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLPool::QueryOne | ( | const char * | pszSQL, |
uint32_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLPool::QueryOne | ( | const char * | pszSQL, |
uint64_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLPool::QueryOne | ( | const char * | pszSQL, |
int64_t & | iData | ||
) |
SELECT count(*) 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
iData | 검색 결과 저장 변수 |
bool CDbMySQLPool::QueryOne | ( | const char * | pszSQL, |
std::string & | strData | ||
) |
SELECT string 와 같은 1개의 row, column 인 SQL 문을 실행한다.
pszSQL | SQL 문 |
strData | 검색 결과 저장 변수 |
void CDbMySQLPool::Release | ( | CDbMySQLConnection * | pclsDbConn | ) |
DB 연결 객체를 DB pool 에 반환한다.
pclsDbConn | DB 연결 객체 |
bool CDbMySQLQueue::Select | ( | CDbMySQLQueueData & | clsData, |
bool | bWait = true |
||
) |
큐에서 SQL 문자열을 가져온다.
clsData | SQL 문자열 등을 저장 변수 |
bWait | SQL 문자열이 존재할 때까지 대기하는가? |
bool CDbMySQLPool::Select | ( | CDbMySQLConnection ** | ppclsDbConn, |
bool | bStandByUntilAvailable = true |
||
) |
DB pool 에서 DB 연결 객체를 가져온다.
ppclsDbConn | DB 연결 객체의 포인터 |
bStandByUntilAvailable | 사용할 수 있는 DB 연결 객체가 존재할 때까지 대기하면 true 이고 그렇지 않으면 false. |
void CDbMySQLConnection::SetLogLevel | ( | EnumLogLevel | eLogLevel | ) |
SQL 로그 레벨을 설정한다.
eLogLevel | SQL 로그 레벨 ( LOG_SQL, LOG_SQL1, LOG_SQL2, LOG_SQL3 중에서 1개를 입력한다. ) |
void CDbMySQLQueue::SetMaxSize | ( | int | iMaxSize | ) |
큐에 저장할 수 있는 SQL 문자열의 최대 개수를 설정한다.
iMaxSize | 큐에 저장할 수 있는 SQL 문자열의 최대 개수 |
void CDbMySQLPool::SetReadTimeout | ( | int | iSecond | ) |
MySQL read timeout 시간을 설정한다.
본 메소드는 Connect() 메소드를 호출하기 전에 호출해야 유효하다.
iSecond | MySQL read timeout 시간 (초단위) |
void CDbMySQLConnection::SetReadTimeout | ( | int | iSecond | ) |
MySQL read timeout 시간을 설정한다.
본 메소드는 Connect() 메소드를 호출하기 전에 호출해야 유효하다.
iSecond | MySQL read timeout 시간 (초단위) |
void CDbMySQLPool::SetWriteTimeout | ( | int | iSecond | ) |
MySQL write timeout 시간을 설정한다.
본 메소드는 Connect() 메소드를 호출하기 전에 호출해야 유효하다.
iSecond | MySQL write timeout 시간 (초단위) |
void CDbMySQLConnection::SetWriteTimeout | ( | int | iSecond | ) |
MySQL write timeout 시간을 설정한다.
본 메소드는 Connect() 메소드를 호출하기 전에 호출해야 유효하다.
iSecond | MySQL write timeout 시간 (초단위) |
void CDbMySQLQueue::Signal | ( | ) |
큐에 SQL 문자열이 존재할 때까지 대기하는 쓰레드에게 이벤트를 전송한다.
bool StartDbMySQLThread | ( | int | iThreadCount, |
CDbMySQLQueue * | pclsSqlQueue, | ||
const char * | pszHost, | ||
const char * | pszUserId, | ||
const char * | pszPassWord, | ||
const char * | pszDbName, | ||
int | iPort, | ||
const char * | pszCharacterSet | ||
) |
MySQL 연동 쓰레드들을 시작한다.
iThreadCount | MySQL 연동 쓰레드 개수 |
pclsSqlQueue | SQL 문자열 큐 |
pszHost | MySQL 호스트 이름 or IP 주소 |
pszUserId | MySQL 접속 아이디 |
pszPassWord | MySQL 접속 아이디의 비밀번호 |
pszDbName | MySQL 접속 데이터베이스 이름 |
iPort | MySQL 접속 포트 번호 |
pszCharacterSet | character set |
bool StartDbMySQLThread | ( | CDbMySQLConnection * | pclsDbConn, |
CDbMySQLQueue * | pclsSqlQueue | ||
) |
MySQL 연동 쓰레드를 시작한다.
pclsDbConn | MySQL DB 연결 객체 |
pclsSqlQueue | SQL 문자열 큐 |
void StopDbMySQLThread | ( | ) |
MySQL 연동 쓰레드에 중지 명령을 전송한다.