2008/09/10
MySQL Connector/C++ 프리뷰 공개
오늘 MySQL 뉴스레터에서 MySQL Connector/C++ 에 대한 소식을 접하였다.
지금까지 C++ 프로그래밍시 mysql을 컨트롤 하기 위해서는 MySQL C API 를 사용해 왔는데
이제는 그럴 필요가 없을 듯 보인다.
아래는 MySQL Connector/C++ 에대한 기사 내용이다.
MySQL Connetor/C++ 이라는 새로운 커넥터 사용이 가능해졌습니다. MySQL Connector/C++은 MySQL
서버에 클라이언트 어플리케이션 연결을 위한 C++API를 제공합니다. MySQL Connector/C++은 JDBC 3.0
API와 매우 흡사합니다. MySQL C API(MySQL 클라이언트 라이브러리) 대신 MySQL Connector/C++을
사용하시면 다음과 같은 C++사용자들의 이점을 제공받을 수 있습니다.
- 별도의 C 함수 호출없이, 순수하게 C++ 만을 사용함으로 얻는 편리함
- 잘 디자인된 API – JDBC 3.0지원
- 일반적으로 알려져 있고 잘 문서화된 API-JDBC 3.0 지원
- 객체 지향적 프로그래밍의 패러다임을 지원
- 더욱 짧아진 개발 시간
문서:
http://forge.mysql.com/wiki/Connector_C++
지금 다운로드:
http://downloads.mysql.com/forge/connector_cpp_preview
문서 페이지를 열어보면 Connector C++ 에대한 소개와 간단한 사용법이 나온다.
여러가지 면에서 객체화된 MySQL Connector 로 간단 명료하게 작업을 할 수 있게 되어 좋지만 그 중에서도 PreparedStatement 기능을 간단하게 사용할 수 있어서 많이 편리해 졌다.
기존 C API 를 그대로 사용할 때는 바인딩 변수를 만들어 형식과 값을 할당하고 실행 해야 했지만 MySQL Connector C++ 에서는 PreparedStatement 객체를 직접 사용할 수 있어 상당히 편리해 졌다.
Original Post : http://neodreamer-dev.tistory.com/152
지금까지 C++ 프로그래밍시 mysql을 컨트롤 하기 위해서는 MySQL C API 를 사용해 왔는데
이제는 그럴 필요가 없을 듯 보인다.
아래는 MySQL Connector/C++ 에대한 기사 내용이다.
MySQL Connetor/C++ 이라는 새로운 커넥터 사용이 가능해졌습니다. MySQL Connector/C++은 MySQL
서버에 클라이언트 어플리케이션 연결을 위한 C++API를 제공합니다. MySQL Connector/C++은 JDBC 3.0
API와 매우 흡사합니다. MySQL C API(MySQL 클라이언트 라이브러리) 대신 MySQL Connector/C++을
사용하시면 다음과 같은 C++사용자들의 이점을 제공받을 수 있습니다.
- 별도의 C 함수 호출없이, 순수하게 C++ 만을 사용함으로 얻는 편리함
- 잘 디자인된 API – JDBC 3.0지원
- 일반적으로 알려져 있고 잘 문서화된 API-JDBC 3.0 지원
- 객체 지향적 프로그래밍의 패러다임을 지원
- 더욱 짧아진 개발 시간
문서:
http://forge.mysql.com/wiki/
지금 다운로드:
http://downloads.mysql.com/
문서 페이지를 열어보면 Connector C++ 에대한 소개와 간단한 사용법이 나온다.
여러가지 면에서 객체화된 MySQL Connector 로 간단 명료하게 작업을 할 수 있게 되어 좋지만 그 중에서도 PreparedStatement 기능을 간단하게 사용할 수 있어서 많이 편리해 졌다.
기존 C API 를 그대로 사용할 때는 바인딩 변수를 만들어 형식과 값을 할당하고 실행 해야 했지만 MySQL Connector C++ 에서는 PreparedStatement 객체를 직접 사용할 수 있어 상당히 편리해 졌다.
//////////////////////////////////////////////
// C API 를 이용한 Prepared Statement
m_pMySQL = mysql_init( NULL );
mysql_real_connect( m_pMySQL, "localhost", "root", "",
NULL, 3306, NULL, NULL);
MYSQL_BIND bind[4];
my_bool mybool[4];
MYSQL_STMT *pStmt = mysql_stmt_init( m_pMySQL );
char szName[20];
int nAge;
char szAlias[20];
char szAddr[255];
sprintf_s( szQuery, "INSERT INTO speedtest ( name, age, alias, addr ) "
"VALUES ( ?, ?, ?, ? )");
mysql_stmt_prepare( pStmt, szQuery, (unsigned long)strlen( szQuery ) );
mysql_stmt_bind_param( pStmt, bind );
for (int nRow = 0 ; nRow < 10000; ++nRow)
{
sprintf_s( szName, "123" );
bind[0].buffer_type = MYSQL_TYPE_VAR_STRING;
bind[0].buffer_length = (unsigned long)strlen( szName);
bind[0].is_null = &mybool[0];
bind[0].buffer = szName;
nAge = 10;
bind[1].buffer_type = MYSQL_TYPE_LONG;
bind[1].is_null = &mybool[1];
bind[1].buffer = &nAge;
sprintf_s( szAlias, "456" );
bind[2].buffer_type = MYSQL_TYPE_VAR_STRING;
bind[2].buffer_length = (unsigned long)strlen( szAlias);
bind[2].is_null = &mybool[2];
bind[2].buffer = szAlias;
sprintf_s( szAddr, "123456" );
bind[3].buffer_type = MYSQL_TYPE_VAR_STRING;
bind[3].buffer_length = (unsigned long)strlen( szAddr);
bind[3].is_null = &mybool[3];
bind[3].buffer = szAddr;
nRst = mysql_stmt_execute( pStmt );
}
mysql_stmt_close( pStmt );
mysql_close( m_pMySQL );
//////////////////////////////////////////////////////
// MySQL Connector C++ 를 이용한 Prepared Statement
sql::mysql::MySQL_Driver *driver;
sql::Connection *con;
sql::PreparedStatement *prep_stmt
driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
con = driver->connect(EXAMPLE_HOST, EXAMPLE_PORT,
EXAMPLE_USER, EXAMPLE_PASS);
prep_stmt = con->prepareStatement(
"INSERT INTO speedtest ( name, age, alias, addr )"
"VALUES ( ?, ?, ?, ? )"
);
for (int nRow = 0 ; nRow < 10000; ++nRow)
{
prep_stmt->setString(1, "123");
prep_stmt->setInt( 2, 10);
prep_stmt->setString(3, "456");
prep_stmt->setString(4, "123456");
prep_stmt->execute();
}
delete prep_stmt;
delete con;
Original Post : http://neodreamer-dev.tistory.com/152
Labels:
MYSQL
,
MySQL Connector C++
,
TistoryOldPost
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment