Rumah pangkalan data tutorial mysql 在VC2008中使用"MySQL Connector/C++ "连接My_MySQL

在VC2008中使用"MySQL Connector/C++ "连接My_MySQL

Jun 01, 2016 pm 01:51 PM

最近参与一个项目,要在VC环境下编程访问数据库。

一般来说,VC下采用微软自身的SQL Server是比较常见的做法。但是我总觉得SQL Server只适合学习,不适合真正应用。再加上像我们这样一个算小也不小,算大也不大的项目来说,网上推荐的总是MySQL。基于这样的考虑,我们就选择了MySQL作为后台数据库。

C++语言本身并没有提供访问数据库的东西。因此一般我们要使用访问数据库的驱动。微软提供过一个ODBC的标准API,用于屏蔽各数据库底层细节,提供统一接口访问各个数据库。在MySQL官网上也能下到一个叫"Connector/ODBC"的driver,但是就在同一个网页上,又看到一个"Connector/C++"的driver,于是我就想,既然能专门针对C++语言提供一个driver,那这个应该比ODBC要效率高些吧。因此我就选择了他。

经过一番探索,终于搞定了数据库访问问题。废话不多说,下面就讲讲如何配置。

--------------------------------------------------------------------------------------------------------------------------

首先在http://www.mysql.com/downloads/上下载"Connector/C++"的driver,注意要下1.0.5版本的(最新的1.1.0版要使用一个神马库,麻烦)。下完后安装(或者免安装版的直接解压),完了之后在安装目录下会生成一个"MySQL Connector C++ 1.0.5"的文件夹,里面有两个子文件夹"include"及"lib",其中lib文件夹下又有一个debug文件夹和opt文件夹。

在VC中新建一个项目,

1.右击项目->属性->配置属性->"C/C++"->常规,在“附加包含目录”中将刚刚所说的"include"及"include/cppconn"的路径包含进来。

2.若在debug下,属性->配置属性->链接器->常规,在“附加库目录”中将刚刚所提的"lib"文件夹下的子文件夹"debug"的路径包含进来。若在release下,则将"opt"的路径包含进来。

3.属性->配置属性->链接器->输入,在“附加依赖项”中添加"mysqlcppconn.lib,mysqlcppconn-static.lib"这两项(这两项其实是"lib"文件夹下的两个lib文件)。

4.将"MySQL Connector C++ 1.0.5/lib/debug"下的"mysqlcppconn.dll"文件复制到windows/system32文件夹下或直接复制到项目所在路径下的debug文件夹下。(release下类似,复制".../lib/opt"下的即可。

5.将"MySQL安装目录/lib/opt"下的"libmysql.dll"文件复制到windows/system32文件夹下。

至此,整个运行环境就算配置好了。现在可以编写一段简单的代码测试一下。提供一段代码如下:

#include <iostream>#include <mysql_connection.h>#include <cppconn>#include <cppconn>#include <cppconn>#include <cppconn>#include <cppconn><br>using namespace sql;<br>using namespace std;<br>void RunConnectMySQL() <br>{<br>    mysql::MySQL_Driver *driver;<br>    Connection *con;<br>    Statement *state;<br>    ResultSet *result;<br>    // 初始化驱动<br>    driver = sql::mysql::get_mysql_driver_instance();<br>    // 建立链接<br>    con = driver->connect("tcp://127.0.0.1:3306", "root", "123");<br>    state = con->createStatement();<br>    state->execute("use test");<br>    // 查询<br>    result = state->executeQuery("select * from testuser where id     // 输出查询<br>    while(result->next())<br>    {<br>        int id = result->getInt("ID");<br>        string name = result->getString("name");<br>        cout     }<br>    delete state;<br>    delete con;<br>}<br>int main()<br>{<br>    RunConnectMySQL();<br>    getchar();<br>    return 0;<br>}</cppconn></cppconn></cppconn></cppconn></cppconn></mysql_connection.h></iostream>
Salin selepas log masuk

当然,如果想让这段代码正确执行的话,首先得先在数据库里建一张对应的表(此处略去若干字)。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Bagaimana anda mengendalikan dataset besar di MySQL? Bagaimana anda mengendalikan dataset besar di MySQL? Mar 21, 2025 pm 12:15 PM

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Bagaimana anda menjatuhkan jadual di MySQL menggunakan pernyataan jadual drop? Mar 19, 2025 pm 03:52 PM

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Bagaimana anda mewakili hubungan menggunakan kunci asing? Bagaimana anda mewakili hubungan menggunakan kunci asing? Mar 19, 2025 pm 03:48 PM

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Bagaimana anda membuat indeks pada lajur JSON? Bagaimana anda membuat indeks pada lajur JSON? Mar 21, 2025 pm 12:13 PM

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)? Mar 18, 2025 pm 12:00 PM

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)

See all articles