`
s929498110
  • 浏览: 106911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++连接MySQL数据库

阅读更多

前一段时间给大一的学弟学妹们讲解MySQL、 随手用Java演示的怎么用外界应用程序连接MySQL数据库。但是好像他们都看不懂、而他们正好在学习C++,

于是乎、 我就简单的用C++实现了一个MySQL的链接操作类。好几个月没有怎么接触C++了、感觉这个类弄得有点四不像、 但是好歹能够运行吧。。。

此C++链接MySQL连接程序完成之后,发在实验室扣扣群里面,他们竟然都没有丝毫反应。。。估计大一后生们都完全听从大三学长啊、 搞得我们大二新生代情何以堪、说的话毫无威信。。。。。。

发牢骚归发牢骚、C++代码发出来,如果那些入门者想了解就可以借鉴一下、虽然程序很挫吧。入门级还是无压力的

 

 

头文件

#include <iostream>

#include <winsock.h> // 连接mysql需要此头文件

// MySQL Server 6.0安装位置下的include内*.h头文件用来提供C/C++连接MySQL的一下数据类型和函数
// 复制include文件夹入当前工程目录下
#include "include/mysql.h" 
using namespace std;

// MySQL安装位置下的lib/opt/libmysql.lib用来提供头文件所提供函数的具体实现
// 复制libmysql.lib入当前目录下
#pragma comment(lib, "libmysql.lib") 

class Tool  
{
public:
	void resultSQL(const char* sql);
	void console();
	int executeSQL(const char* sql);
	void setCharset(const char* name);
	void connect(const char *host, const char *user, const char *passwd, const char *db, unsigned int port);
	Tool();
	virtual ~Tool();
private:
	MYSQL mysql;	// 数据库实例
	bool available;	// 当前数据库对象是否可用标识符
};

 

具体实现

#include "Tool.h"

// 所有涉及mysql的函数(mysql_*(*))都可以在《mysql参考手册》的25.2小节中找到
// 主要是【25.2.1. C API数据类型】【25.2.2. C API函数概述】【25.2.1. C API函数描述】

Tool::Tool()
{
	mysql_init(&mysql); // 分配并初始化MYSQL对象
	available = false;
}

Tool::~Tool()
{
	mysql_close(&mysql); // 关闭MYSQL连接
}

/*
host:主机名、localhost或IP地址等
user:用户名、MySQL的用户名
password:密码、MySQL的用户密码
db:数据库名称。如果db为NULL,连接会将默认的数据库设为该值
port:MySQL的链接端口
*/
void Tool::connect(const char *host, const char *user, const char *password, const char *db, unsigned int port)
{
	if(NULL!=mysql_real_connect(&mysql, host, user, password, db, port, NULL, 0)){
		available = true;
		cout<<"Successful connection!"<<endl;
	}
	else{
		cout<<"ERROR: "<<mysql_error(&mysql)<<endl;
	}
}

/*
 设置连接到MySQL的字符集
*/
void Tool::setCharset(const char *name)
{
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, name);
}

/*
可以执行表操作/增删改查/数据库操作等等
sql语句执行错误返回-2
如果为查询操作则返回-1
如果为修改操作则返回修改影响到的行数
*/
int Tool::executeSQL(const char *sql)
{
	// 若valuable为false则说明MySQL连接尚不可用
	if(!available)
		return -2;
	// 执行指定sql操作
	cout<<sql<<endl;
	if(!mysql_real_query(&mysql, sql, strlen(sql))){
		// mysql_real_query函数执行结果为0则说明操作成功,返回影响的行数
		return (int)mysql_affected_rows(&mysql); 
	}else{
		// 如果操作失败则输出错误信息
		cout<<mysql_error(&mysql)<<endl; 
		return -2;
	}
}

void Tool::console()
{
	if(!available)
		return;
	/*
		简单模拟MySQL控制台、未实现
		原理:重复读取输入字符串+执行executeSQL/resultSQL方法
	*/
}

void Tool::resultSQL(const char *sql)
{
	if(executeSQL(sql) != -1)
		return;
	// 此处基本上不可能出现result为NULL的情况
	MYSQL_RES * result = mysql_store_result(&mysql);
	MYSQL_FIELD *field;
	while((field = mysql_fetch_field(result))) {
		printf("field name:  %s\n", field->name);
	}
	// 根据各个列取出结果、未实现

}
 

 

分享到:
评论

相关推荐

    C++连接mysql数据库 源代码

    在"C++连接mysql数据库 源代码"这个项目中,我们可以学习到以下几个关键知识点: 1. **MySQL C++ Connector**: 连接MySQL数据库时,通常会使用MySQL官方提供的C++ Connector,这是一个用于C++应用程序的数据库驱动...

    基于C和C++连接MySQL数据库实现简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计.zip

    使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计.zip 使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息...

    linux(centos) 下C++连接mysql数据库

    在Linux(CentOS)系统中,使用C++连接MySQL数据库是一项常见的任务,特别是在开发服务器端应用程序时。这里我们将深入探讨如何实现这一目标,以及在这个过程中可能遇到的关键知识点。 首先,你需要确保你的系统...

    使用C和C++连接MySQL数据库并进行常用的数据库操作

    使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理...

    c++连接mysql数据库

    本项目中的"cpp_connect_mysql"提供了C++连接MySQL数据库的具体实现,确保了连接的稳定性与正确性。 首先,我们需要了解C++连接MySQL的基本概念。C++通过MySQL Connector/C++库来与MySQL服务器通信。这个库提供了一...

    dev c++ 连接 mysql 方法、库

    这里的`devc++`指的是Dev C++ IDE,`c++`是编程语言,而`mysql 库`则指用于C++连接MySQL数据库的API,通常包括libmysqlclient库。这个库提供了连接、查询、执行SQL语句等操作MySQL数据库所需的功能。 为了在Dev C++...

    C++连接mysql数据库

    ### C++连接MySQL数据库知识点详解 #### 一、引言 在软件开发中,数据库连接是必不可少的一个环节。本文将详细介绍如何使用C++语言来连接MySQL数据库,主要介绍两种方式:利用ADO(ActiveX Data Objects)连接以及...

    C++连接mysql数据库的两种方法.docx

    C++连接mysql数据库的两种方法 在 C++ 中连接 mysql 数据库有两种方法,一种是利用 ADO 连接,另一种是利用 mysql 自己的 API 函数进行连接。下面我们将详细介绍这两种方法。 第一种方法:利用 ADO 连接 ADO...

    Linux下C++连接mysql数据库

    Linux下C++连接mysql数据库,供大家一起共同分享学习。

    C++连接Mysql数据库

    首先,为了在C++中连接MySQL,你需要安装MySQL的C++连接器(libmysqlclient)。这个库提供了与MySQL服务器通信所需的接口。你可以从MySQL官网下载并按照指示进行安装。 1. **配置环境**: 在项目中包含必要的...

    c++连接mysql数据库带参数查询.docx

    "C++ 连接 MySQL 数据库带参数查询" 本文档主要介绍了使用 C++ 语言连接 MySQL 数据库并进行参数查询的方法。下面是本文档中 涉及到的知识点: 1. 包含头文件:文档中包含了多个头文件,包括 "stdafx.h"、"winsock...

    c++封装MYSQL数据库连接代码

    1. **C++与MySQL连接库**:MySQL为C++提供了一个名为`mysqlcppconn`的库,它允许开发者使用C++接口来操作MySQL数据库。这个库包含了`mysql.h`头文件和对应的动态或静态链接库文件,例如`libmysqlcppconn.so`(Linux...

    使用C和C++连接MySQL数据库并进行常用的数据库操作。

    本主题将深入探讨如何使用C和C++连接MySQL数据库并执行常见的数据库操作。 首先,为了在C或C++中使用MySQL,我们需要包含MySQL的客户端库,即`libmysqlclient`。在Linux系统中,通常通过包管理器安装,而在Windows...

    MySQL ODBC 用C++连接MySQL数据库

    3. **C++与ODBC连接**:在C++中,使用ODBC连接MySQL数据库通常涉及以下步骤: - 配置ODBC数据源:在操作系统层面设置ODBC数据源,包含数据库的URL、用户名、密码等信息。 - 包含ODBC头文件:在C++代码中,引入如`...

    C++连接Mysql数据库1

    ### C++连接MySQL数据库知识点详解 #### 一、环境配置 **Windows环境下配置:** - **MySQL + Visual Studio 2010** 1. **查找MySQL的lib文件夹:** - 路径通常位于:`C:\Program Files\MySQL\MySQL Server 5.6...

    C和C++连接MySQL数据库实现简单的学生(或职工)信息管理系统

    总的来说,通过C和C++连接MySQL数据库,我们可以构建功能强大的信息管理系统。这个过程涉及到数据库连接、SQL语句的编写和执行、结果集的处理等多个关键环节,对于提升编程技能和理解数据库操作至关重要。随着熟练度...

    使用C和C++连接MySQL数据库并进行常用的数据库操作,数据库课程设计.zip

    使用C和C++连接MySQL数据库并进行常用的数据库操作。实现了简单的学生(或职工)信息管理系统,源于大学时的数据库课程设计 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、...

    C++连接mysql数据库的两种方法.pdf

    C++连接mysql数据库的两种方法.pdf

Global site tag (gtag.js) - Google Analytics