2008/12/03

MySQL Connector/C++ 을 이용한 간단한 테스트 소스

MySQL Connector/C++ 을 이용하여 간단하게 데이터 베이스 작업을 한 소스이다.

JDBC를 다루었던 경험이 있다면 정말 쉽게 MySQL Connector/C++ 을 이용할 수 있을 것 같다.

설명을하자면 쓸데 없는 글만 늘어 놓을 것 같으니 직접 소스를 보면 한 눈에 들어올 것이다.


    try
{
// Driver 인스턴스 가져오기
m_pDriver = sql::mysql::MySQL_Driver::Instance();

if ( m_pDriver )
{
m_pConn = m_pDriver->connect( "tcp://127.0.0.1", "root", "");

if ( m_pConn )
{
// Statement 생성
sql::Statement *pStmt = m_pConn->createStatement();
sql::ResultSet *res = NULL;

// 데이터 베이스 선택
pStmt->execute( "USE mysql" );
{
// 질의문 수행
res = pStmt->executeQuery( "SELECT host FROM user" );

// 질의결과 탐색
while( res->next() )
{
// 컬럼 데이터 가져오기
std::string host = res->getString( "host" );
TRACE( "%s\n", host.c_str() );
}

// 질의 결과 셋 해제
delete res;
}

// 데이터 베이스 생성
pStmt->execute( "CREATE DATABASE IF NOT EXISTS test" );

// 데이터 베이스 선택
pStmt->execute( "USE test" );

string strQuery;

// 테이블 스키마
strQuery = "CREATE TABLE IF NOT EXISTS member ("
" NAME CHAR(50) NOT NULL PRIMARY KEY,"
" NICK CHAR(50) NULL,"
" AGE INT NOT NULL"
")"
;

// 테이블 내용 삭제
pStmt->execute( "DELETE FROM member" );

// 테이블 생성
pStmt->execute( strQuery );
{
// Insert 문
strQuery = "INSERT INTO member ( name, nick, age )"
" VALUES ('a', 'aa', 10)";

// 레코드 삽입
pStmt->executeUpdate( strQuery );

// 삽입된 레코드 수 가져오기
int nResult = pStmt->getUpdateCount();
TRACE( "Inserted row(s): %d\n", nResult );
}

// Prepared Statement 사용하기
strQuery = "INSERT INTO member ( name, nick, age )"
" VALUES ( ?, ?, ?)";
sql::PreparedStatement *pPreStmt;
pPreStmt = m_pConn->prepareStatement( strQuery );

char name[100];

for ( int i = 0; i < 100; ++i )
{
sprintf( name, "name%03d\0", i );

// 데이터 바인딩
pPreStmt->setString( 1, name );
pPreStmt->setString( 2, "" );
pPreStmt->setInt( 3, 3 );

// Prepared Statement 수행
pPreStmt->executeUpdate();
}

// Statement 삭제
delete pStmt;
}
}
}
catch (sql::SQLException &e)
{
// 예외처리 - 에러 메시지와 에러 코드를 가져올 수 있다.
std::string err = e.what();
}




2008/12/03 - [Dev Story] - MySQL Connector/C++ 1.0.1alpha is available!
2008/12/02 - [Dev Story/Tips] - MySQL Connector/C++ 1.0.1 Alpha 컴파일 하기


Original Post : http://neodreamer-dev.tistory.com/208

No comments :

Post a Comment