|
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 연동 쓰레드에 중지 명령을 전송한다.
1.8.1.2