Maison >base de données >tutoriel mysql >VS2013下连接MySQL5.6小例

VS2013下连接MySQL5.6小例

WBOY
WBOYoriginal
2016-06-07 14:51:141196parcourir

环境:win832系统,VS2013,MySQL5.6,boost1.60 需要注意的是,安装MySQL时需要安装完整版本,否则在MySql的目录下可能会没有Connector.C++ 1.1这个目录。 boost下载后,直接解压即可。(我是放在C:\Program Files目录下),下载地址:http://www.boost.org/u

环境:win832系统,VS2013,MySQL5.6,boost1.60
需要注意的是,安装MySQL时需要安装完整版本,否则在MySql的目录下可能会没有Connector.C++ 1.1这个目录。
boost下载后,直接解压即可。(我是放在C:\Program Files目录下),下载地址:http://www.boost.org/users/download/
连接的方式有2种,一种是纯C风格的,不需要使用Connector.C++ 1.1目录下提供的内容。(个人觉得麻烦,代码看着乱,网上有很多资源)。另一种就是利用Connector.C++ 1.1提供的内容,代码简洁,这里只讲这种方法连接数据库。

首先,新建一个VC++的win32空项目。添加源文件,代码如下(代码暂时无法运行,具体配置在后面)
源.cpp

<code class=" hljs lasso">
<span class="hljs-variable">#include</span><span class="hljs-subst"><</span>cppconn<span class="hljs-subst">\</span>driver<span class="hljs-built_in">.</span>h<span class="hljs-subst">></span>
<span class="hljs-variable">#include</span><span class="hljs-subst"><</span>cppconn<span class="hljs-subst">\</span>exception<span class="hljs-built_in">.</span>h<span class="hljs-subst">></span>
<span class="hljs-variable">#include</span> <span class="hljs-subst"><</span>cppconn/<span class="hljs-keyword">resultset</span><span class="hljs-built_in">.</span>h<span class="hljs-subst">></span> 
<span class="hljs-variable">#include</span> <span class="hljs-subst"><</span>cppconn/statement<span class="hljs-built_in">.</span>h<span class="hljs-subst">></span>
<span class="hljs-variable">#include</span><span class="hljs-subst"><</span>mysql_connection<span class="hljs-built_in">.</span>h<span class="hljs-subst">></span>
<span class="hljs-variable">#include</span><span class="hljs-subst"><</span>iostream<span class="hljs-subst">></span>
<span class="hljs-variable">#include</span><span class="hljs-subst"><</span><span class="hljs-built_in">string</span><span class="hljs-subst">></span>
using namespace std;
int main()
{

        sql<span class="hljs-tag">::Driver</span> <span class="hljs-subst">*</span>dirver;
        sql<span class="hljs-tag">::Connection</span> <span class="hljs-subst">*</span>con;
        sql<span class="hljs-tag">::Statement</span> <span class="hljs-subst">*</span>stmt;
        sql<span class="hljs-tag">::PreparedStatement</span> <span class="hljs-subst">*</span>pstmt;
        sql<span class="hljs-tag">::ResultSet</span> <span class="hljs-subst">*</span>res;
        dirver <span class="hljs-subst">=</span> get_driver_instance();
        <span class="hljs-comment">//连接数据库</span>
        con <span class="hljs-subst">=</span> dirver<span class="hljs-subst">-></span>connect(<span class="hljs-string">"localhost"</span>, <span class="hljs-string">"root"</span>, <span class="hljs-string">"123456"</span>);
        <span class="hljs-comment">//选择mydata数据库</span>
        con<span class="hljs-subst">-></span>setSchema(<span class="hljs-string">"mydata"</span>);
        con<span class="hljs-subst">-></span>setClientOption(<span class="hljs-string">"characterSetResults"</span>, <span class="hljs-string">"utf8"</span>);
        stmt <span class="hljs-subst">=</span> con<span class="hljs-subst">-></span>createStatement();
        <span class="hljs-comment">//从name_table表中获取所有信息</span>
        res <span class="hljs-subst">=</span> stmt<span class="hljs-subst">-></span>executeQuery(<span class="hljs-string">"SELECT * from name_table"</span>);
        <span class="hljs-comment">//循环遍历</span>
        <span class="hljs-keyword">while</span> (res<span class="hljs-subst">-></span>next())
        {
            <span class="hljs-comment">//输出,id,name,age,work,others字段的信息</span>
            cout <span class="hljs-subst"><<</span> res<span class="hljs-subst">-></span>getInt(<span class="hljs-string">"ID"</span>) <span class="hljs-subst"><<</span> <span class="hljs-string">" | "</span> 
                <span class="hljs-subst"><<</span> res<span class="hljs-subst">-></span>getString(<span class="hljs-string">"name"</span>) <span class="hljs-subst"><<</span> <span class="hljs-string">" | "</span> 
                <span class="hljs-subst"><<</span> res<span class="hljs-subst">-></span>getInt(<span class="hljs-string">"age"</span>) <span class="hljs-subst"><<</span> <span class="hljs-string">" | "</span> 
                <span class="hljs-subst"><<</span> res<span class="hljs-subst">-></span>getString(<span class="hljs-string">"work"</span>) <span class="hljs-subst"><<</span> <span class="hljs-string">" | "</span> 
                <span class="hljs-subst"><<</span> res<span class="hljs-subst">-></span>getString(<span class="hljs-string">"others"</span>) <span class="hljs-subst"><<</span> endl;

        }
        <span class="hljs-comment">//清理</span>
        delete res;
        delete stmt;
        delete con;

    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}</code>

对于以Debug版本运行的程序:
1、项目(P)——xxx属性页——配置属性——C/C++——附加包含目录添加:
C:\Program Files\MySQL\Connector.C++ 1.1\include
C:\Program Files\boost_1_60_0
2、项目(P)——xxx属性页——配置属性——链接器——常规——附加库目录添加
C:\Program Files\MySQL\Connector.C++ 1.1\lib\debug
3、项目(P)——xxx属性页——配置属性——链接器——输入——附加依赖项添加
mysqlcppconn.lib
4、将C:\Program Files\MySQL\MySQL Server 5.6\lib目录下的libmysql.dllC:\Program Files\MySQL\Connector.C++ 1.1\lib\debug目录下的mysqlcppconn.dll,拷贝到工程目录中(和源文件放在一个目录即可)。

对于以Release版本运行的程序:
1、项目(P)——xxx属性页——配置属性——C/C++——附加包含目录添加:
C:\Program Files\MySQL\Connector.C++ 1.1\include
C:\Program Files\boost_1_60_0
2、项目(P)——xxx属性页——配置属性——链接器——常规——附加库目录添加
C:\Program Files\MySQL\Connector.C++ 1.1\lib\opt
3、项目(P)——xxx属性页——配置属性——链接器——输入——附加依赖项添加
mysqlcppconn.lib
4、将C:\Program Files\MySQL\MySQL Server 5.6\lib目录下的libmysql.dllC:\Program Files\MySQL\Connector.C++ 1.1\lib\opt目录下的mysqlcppconn.dll,拷贝到工程目录中(和源文件放在一个目录即可)。

为什么区别配置Debug和Release版本?
可以试一下,以本文的程序为例,以Debug的配置,在Release版本下运行不了程序。反之亦然。

运行结果:
数据库中的数据
这里写图片描述
程序运行结果
这里写图片描述

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn