Linux下使用C/C 访问数据库——MySQL篇
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-05-17
|
最近打算写一套OA系统,为了方便进行数据库操作,特意抽出一周的时间来研究C/C 访问各种数据库的方法,并打算封装一套数据库操作类,现在奉上最简单的一部分:在Linux下访问MySQL数据库.
本文中使用的MySQL API代码为C语言,如果各位对C 有兴趣,可以考虑使用mysql .
一、配置开发环境
需要编译、安装MySQL,安装完成后,将MySQL目录中的lib目录添加到环境变量中.
新建C/C 工程,把$MYSQL_ROOT/include添加到编译环境的包含路径下面.在编译选项中,增加$MYSQL_ROOT/lib目录.在Link选项中增加-lmysqlclient(已经把lib目录增加到系统环境变量中),或者直接引用libmysqlclient.so文件.
二、程序代码
不多说了,直接上代码,注释都很详细.
/* * MySQLManager.h * * Created on: Feb 18, 2009 * Author: Steven Wee */
#ifndef MYSQLMANAGER_H_ #define MYSQLMANAGER_H_
#include "../Common/CheckStringTools.h"
#include <mysql.h>
#include <string> #include <iostream> #include <vector>
#include <string.h>
using namespace std;
class MySQLManager { public: /* * Init MySQL * @param hosts: Host IP address * @param userName: Login UserName * @param password: Login Password * @param dbName: Database Name * @param port: Host listen port number */ MySQLManager(std::string hosts, std::string userName, std::string password, std::string dbName, unsigned int port); ~MySQLManager(); void initConnection(); /* * Making query from database * @param mysql: MySQL Object * @param sql: Running SQL command */ bool runSQLCommand(std::string sql); /** * Destroy MySQL object * @param mysql MySQL object */ void destroyConnection(); bool getConnectionStatus(); vector< vector<string> > getResult(); protected: void setUserName(std::string userName); void setHosts(std::string hosts); void setPassword(std::string password); void setDBName(std::string dbName); void setPort(unsigned int port); private: bool IsConnected; vector< vector<string> > resultList; MYSQL mySQLClient; unsigned int DEFAULTPORT; char * HOSTS; char * USERNAME; char * PASSWORD; char * DBNAME; };
#endif /* MYSQLMANAGER_H_ */
/* * MySQLManager.cpp * * Created on: Feb 18, 2009 * Author: Steven Wee */ #include "MySQLManager.h"
MySQLManager::MySQLManager(string hosts, string userName, string password, string dbName, unsigned int port) { IsConnected = false; this ->setHosts(hosts); // 设置主机IP地址 this ->setUserName(userName); // 设置登录用户名 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|