MySQL Connector/C++库的使用


声明:本文转载自https://my.oschina.net/u/2245781/blog/1599856,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

一、下载Connector/C++库

官网地址:

https://dev.mysql.com/downloads/connector/cpp/

可以下载源代码自己编译,也可以根据不同的OS环境下载编译好的包,这里下来mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit.tar.gz

二、解压

这里放在mysql的安装目录/opt/mysql下:

$ cd /opt/mysql/ $ sudo tar xzvf ~/mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit.tar.gz $ sudo ln -s mysql-connector-c++-1.1.9-linux-ubuntu16.04-x86-64bit mysql-connector-c++ 

把/opt/mysql/mysql-connector-c++/lib放到动态库搜索路径或用,-rpath=在编译时指定路径。

三、编译运行

建库脚本:

-- phpMyAdmin SQL Dump -- version 4.6.4 -- https://www.phpmyadmin.net/ -- -- Host: localhost -- Generation Time: 2017-12-30 08:49:43 -- 服务器版本: 5.7.14 -- PHP Version: 5.6.26  SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00";   /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */;  -- -- Database: `mymotif` --  -- --------------------------------------------------------  -- -- 表的结构 `users` --  CREATE TABLE `users` (   `id` int(11) NOT NULL,   `name` varchar(20) DEFAULT NULL,   `fullname` varchar(40) DEFAULT NULL,   `password` varchar(12) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  -- -- 转存表中的数据 `users` --  INSERT INTO `users` (`id`, `name`, `fullname`, `password`) VALUES (1, 'ed', 'Ed Jones', 'edspassword'), (2, 'wendy', 'Wendy Williams', 'foobar'), (3, 'mary', 'Mary Contrary', 'xxg527'), (4, 'lisa', 'lisa Contrary', 'ls123'), (5, 'cred', 'cred Flinstone', 'bla123'), (6, 'fred', 'Fred Flinstone', 'blah'), (7, 'jack', 'Jack Bean', 'gjffdd'), (8, 'ed', 'Ed Jones', 'edspassword'), (14, 'jack', 'Jack Bean', 'gjffdd'), (15, 'ed', 'Ed Jones', '888'), (16, 'wendy', 'Wendy Williams', 'foobar'), (17, 'mary', 'Mary Contrary', '123'), (18, 'lisa', 'lisa Contrary', 'ls123'), (19, 'cred', 'cred Flinstone', 'bla123'), (20, 'fred', 'Fred Flinstone', 'blah'), (21, 'jack', 'Jack Bean', 'gjffdd'), (22, 'wxw01', 'Jack wxw', '123'), (23, 'wxw02', 'Jack wxw2', '234');  -- -- Indexes for dumped tables --  -- -- Indexes for table `users` -- ALTER TABLE `users`   ADD PRIMARY KEY (`id`);  -- -- 在导出的表使用AUTO_INCREMENT --  -- -- 使用表AUTO_INCREMENT `users` -- ALTER TABLE `users`   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

c++代码testcppconn.cpp 

#include<iostream> #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> using namespace std;  int main() { 	sql::mysql::MySQL_Driver *driver; 	sql::Connection *conn; 	sql::Statement *state; 	sql::ResultSet *result; 	driver = sql::mysql::get_driver_instance(); 	conn = driver->connect("localhost", "your-user", "your-passwd"); 	state = conn->createStatement(); 	state->execute("use test"); 	result = state->executeQuery("select * from users"); 	//// 输出查询   	while (result->next()!=NULL) 	{ 		cout<<result->getString("id")<<"	"; 		cout<<result->getString("fullname")<<endl; 	} 	return 0; } 

编译运行

$ g++ testcppconn.cpp -o testcppconn  -I/opt/mysql/mysql-connector-c++/include -L/opt/mysql/mysql-connector-c++/lib -lmysqlcppconn -Wl,-rpath=/opt/mysql/mysql-connector-c++/lib $ ./testcppconn  1	Ed Jones 2	Wendy Williams 3	Mary Contrary 4	lisa Contrary 5	cred Flinstone 6	Fred Flinstone 7	Jack Bean 8	Ed Jones 14	Jack Bean 15	Ed Jones 16	Wendy Williams 17	Mary Contrary 18	lisa Contrary 19	cred Flinstone 20	Fred Flinstone 21	Jack Bean 22	Jack wxw 23	Jack wxw2  

pkg-config的使用,写个mysqlconncpp.pc放在$PKG_CONFIG_PATH路径里:

 prefix=/opt/mysql/mysql-connector-c++ includedir=${prefix}/include libdir=${prefix}/lib  Name: mysqlcppconn  Description: MySQL  Connector/C++ library Version: 1.1.9 Cflags: -I${includedir}  Libs: -L${libdir} -lmysqlcppconn Libs.private: -lpthread -lm -lrt -ldl 

这样编译命令就可以变成这样:

$ g++ -o testcppconn testcppconn.cpp `pkg-config --libs --cflags mysqlconncpp` -Wl,-rpath=/opt/mysql/mysql-connector-c++/lib 

 

本文发表于2018年01月01日 08:38
(c)注:本文转载自https://my.oschina.net/u/2245781/blog/1599856,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2927 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1