加入收藏 | 设为首页 | 会员中心 | 我要投稿 洛阳站长网 (https://www.0379zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何运用MySql的API连接MySql数据库

发布时间:2022-01-19 14:02:50 所属栏目:MySql教程 来源:互联网
导读:本篇内容介绍了如何使用MySql的API连接MySql数据库的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! C++连接MySQL数据库有两种方式: 1、通过MySQL
      本篇内容介绍了“如何使用MySql的API连接MySql数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
      C++连接MySQL数据库有两种方式:
 
1、通过MySQL 的C API(决定使用这种方式)
 
也可以使用MySQL++ 。
 
[Mysql++是官方发布的、一个为MySQL设计的C++语言的API。Mysql++为Mysql的C-Api的再次封装,它用STL(Standard Template Language)开发并编写,并为C++开发者提供像操作STL容器一样方便的操作数据库的一套机制]
 
2、通过MySQL的Connector c++
 
MySQL C++ Driver的实现基于JDBC规范。
 
MySQL Connector/C++是由Sun Microsystems开发的MySQL连接器。它提供了基于OO的编程接口与数据库驱动来操作MySQL服务器。与许多其他现存的C++接口实现不同,Connector/C++遵循了JDBC规范。也就是说,Connector/C++ Driver的API主要是基于Java语言的JDBC接口。JDBC是java语言与各种数据库连接的标准工业接口。Connector/C++实现了大部分JDBC规范。
 
学习内容:对如何使用MySql的API连接MySql数据库
 
一、工程设置
将工程的头文件路径指向Mysql安装目录的同文件mysql.h所在的位置,将连接库路径指向libmysql.lib所在的路径:
 
<br>具体配置步骤:
1、项目属性页的C/C++->常规->附加包含目录指向:C:Program FilesMySQLMySQL Server 5.1include
2、项目属性页的链接器->常规->附加库目录指向:C:Program FilesMySQLMySQL Server 5.1libopt.
3、将链接器->输入->附加依赖项中添加libmysql.lib(也可以在程序代码的开始处加上#pragma comment(lib,"D:Program FilesMySQLMySQL Server 5.6liblibmysql.lib") 来导入libmysql.lib)
4、将D:Program FilesMySQLMySQL Server 5.6lib下的libmysql.dll拷到项目的debug文件夹,即跟输出文件一个文件夹下
 
二、连接Mysql和从MySql中取出数据的API
简单的连接数据库,获取数据库信息:
 
#include < windows.h>
#include < mysql.h>
#include < string>
#include < iostream>
using namespace std;
 
int main()
{
 
    const char user[] = "root";
    const char pswd[] = "root";
    const char host[] = "localhost";
    const char table[] = "bookdb";//数据库名
    unsigned int port = 3306;
    MYSQL myCont;
    MYSQL_RES *result;
    MYSQL_ROW sql_row;
    int res;
    mysql_init(&myCont);
    if (mysql_real_connect(&myCont, host, user, pswd, table, port, NULL, 0))
    {
        mysql_query(&myCont, "SET NAMES GBK"); //设置编码格式
        res = mysql_query(&myCont, "select * from bookInfo");//查询
        if (!res)
        {
            result = mysql_store_result(&myCont);
            if (result)
            {
                while (sql_row = mysql_fetch_row(result))//获取具体的数据
                {
                    cout << "BOOKNAME:" << sql_row[1] << endl;
                    cout << "    PRICE:" << sql_row[2] << endl;
                }
            }
        }
        else
        {
            cout << "query sql failed!" << endl;
        }
    }
    else
    {
        cout << "connect failed!" << endl;
    }
    if (result != NULL)
        mysql_free_result(result);
    mysql_close(&myCont);
    system("pause");
    return 0;
 
}

(编辑:洛阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!