zoukankan      html  css  js  c++  java
  • 使用Connector/C++(VS2015)连接MySQL的完整例子

    完整示例代码1

    /* Copyright 2008, 2010, Oracle and/or its affiliates. All rights reserved.
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; version 2 of the License.
    There are special exceptions to the terms and conditions of the GPL
    as it is applied to this software. View the full text of the
    exception in file EXCEPTIONS-CONNECTOR-C++ in the directory of this
    software distribution.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
    */
    /* Standard C++ includes */
    #include "mysql_connection.h"
    #include <cppconn/driver.h>
    #include <cppconn/exception.h>
    #include <cppconn/resultset.h>
    #include <cppconn/statement.h>
    using namespace std;
    int main(void)
    {
        cout << endl;
        cout << "Running 'SELECT 'Hello World!' AS _message'..." << endl;
            try {
            sql::Driver *driver;
            sql::Connection *con;
            sql::Statement *stmt;
            sql::ResultSet *res;
            /* Create a connection */
            driver = get_driver_instance();
            con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
            /* Connect to the MySQL test database */
            con->setSchema("test");
            stmt = con->createStatement();
            res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
            while (res->next()) {
                cout << "	... MySQL replies: ";
                /* Access column data by alias or column name */
                cout << res->getString("_message") << endl;
                cout << "	... MySQL says it again: ";
                /* Access column data by numeric offset, 1 is the first column */
                cout << res->getString(1) << endl;
            }
            delete res;
            delete stmt;
            delete con;
        }
        catch (sql::SQLException &e) {
            cout << "# ERR: SQLException in " << __FILE__;
            cout << "(" << __FUNCTION__ << ") on line " »
                << __LINE__ << endl;
            cout << "# ERR: " << e.what();
            cout << " (MySQL error code: " << e.getErrorCode();
            cout << ", SQLState: " << e.getSQLState() << " )" << endl;
        }
        cout << endl;
        return EXIT_SUCCESS;
    }

    完整示例代码2:如何使用Connector/C++的完整例子

    /* Copyright 2008, 2010, Oracle and/or its affiliates. All rights reserved.
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; version 2 of the License.
    There are special exceptions to the terms and conditions of the GPL
    as it is applied to this software. View the full text of the
    exception in file EXCEPTIONS-CONNECTOR-C++ in the directory of this
    software distribution.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
    */
    /* Standard C++ includes */
    
    #include <stdlib.h>
    #include <iostream>
    /*
    Include directly the different
    headers from cppconn/ and mysql_driver.h + mysql_util.h
    (and mysql_connection.h). This will reduce your build time!
    */
    #include "mysql_connection.h"
    #include <cppconn/driver.h>
    #include <cppconn/exception.h>
    #include <cppconn/resultset.h>
    #include <cppconn/statement.h>
    #include <cppconn/prepared_statement.h>
    using namespace std;
    int main(void)
    {
        cout << endl;
        cout << "Let's have MySQL count from 10 to 1..." << endl;
        try {
            sql::Driver *driver;
            sql::Connection *con;
            sql::Statement *stmt;
            sql::ResultSet *res;
            sql::PreparedStatement *pstmt;
    
            /* Create a connection */
            driver = get_driver_instance();
            con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
            /* Connect to the MySQL test database */
            con->setSchema("test");
            stmt = con->createStatement();
            stmt->execute("DROP TABLE IF EXISTS test");
            stmt->execute("CREATE TABLE test(id INT)");
            delete stmt;
            /* '?' is the supported placeholder syntax */
            pstmt = con->prepareStatement("INSERT INTO test(id) VALUES (?)");
            for (int i = 1; i <= 10; i++) {
                pstmt->setInt(1, i);
                pstmt->executeUpdate();
            }
            delete pstmt;
            /* Select in ascending order */
            pstmt = con->prepareStatement("SELECT id FROM test ORDER BY id ASC");
            res = pstmt->executeQuery();
            /* Fetch in reverse = descending order! */
            res->afterLast();
            while (res->previous())
                cout << "	... MySQL counts: " << res->getInt("id") << endl;
            delete res;
            delete pstmt;
            delete con;
        }
        catch (sql::SQLException &e) {
            cout << "# ERR: SQLException in " << __FILE__;
            cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;
            cout << "# ERR: " << e.what();
            cout << " (MySQL error code: " << e.getErrorCode();
            cout << ", SQLState: " << e.getSQLState() << " )" << endl;
        }
        cout << endl;
        return EXIT_SUCCESS;
    }
  • 相关阅读:
    while循环&CPU占用率高问题深入分析与解决方案
    Jmeter 发送json
    HTTP请求各参数详解
    Fast Stone截图工具使用教程
    程序员必备神器(FastStoneCapture)
    千古第一败家子杨广(打击异己、毫无承担、无识人之明)
    在路上看和今天要解决的问题可能相关的书,顺便工作上实践一下,立码就记住了
    与Qt的联系方式:邮件,论坛,销售,Bug报告
    Qt for Automation
    Qt for WebAssembly
  • 原文地址:https://www.cnblogs.com/mobilecard/p/9196213.html
Copyright © 2011-2022 走看看