vs2015利用connector c++对数据库操作

2024-09-04 18:48

本文主要是介绍vs2015利用connector c++对数据库操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vs2015平台 利用connector c++连接mysql数据库

这几天在折腾c++连接mysql数据库,由于c++本身没有提供连接数据库的接口,只能利用c的一套来连接数据库,可是c连接数据库代码太繁琐而且不整洁,于是采用了mysql提供的针对c++连接数据库的api,即connector c++,现在我整理出来操作步骤供大家学习:

下载:
1. 下载mysql(这个不多说,而且后面要利用里面lib文件夹下的libmysql.dll)
2. 下载Mysql connector c++ 1.0.5,附上地址:http://dev.mysql.com/downloads/connector/cpp/

配置:
1. 项目->属性->配置属性->C/C++->常规,在“附加包含目录”中将MySQL Connector C++ 1.0.5\include\的路径包含进来。
2. 项目->属性->配置属性->链接器->常规,在“附加库目录”中将MySQL\MySQL Connector C++ 1.0.5\lib\opt包含进来。
3. 项目->属性->配置属性->链接器->输入,在“附加依赖项”中添加mysqlcppconn.lib,mysqlcppconn-static.lib这两项(这两项就是”lib”文件夹下的两个lib文件)。
4. 将MySQL Connector C++ 1.0.5\lib\opt下的mysqlcppconn.dll文件复制到项目所在路径下的debug文件夹 (我的是:项目路径\x64\Debug)。

测试代码:

#include <iostream>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
#include <mysql_driver.h> 
using namespace sql;
using namespace std;class BookInfor {
public:string name;string writer;string img;string price;
};class Mysql {
public:mysql::MySQL_Driver *driver;Connection *con;Statement *state;ResultSet *result;PreparedStatement *prep_stmt;Mysql()//构造函数{driver = sql::mysql::get_mysql_driver_instance();// 建立链接con = driver->connect("tcp://127.0.0.1:3307", "root", "root");state = con->createStatement();state->execute("use book_infor");}void query()//查询{// 查询result = state->executeQuery("select * from book");// 输出查询while (result->next()){int id = result->getInt("id");//string img = result->getString("bookname");cout << id << endl;}}int insert(BookInfor book)//插入{bool retstatus = state->execute("INSERT INTO book (bookname,imgpath) VALUES ('Napier', 'New Zealand')");if (!retstatus){return state->getUpdateCount();}else{return 0;}}int prepare_insert(BookInfor book){prep_stmt = con->prepareStatement("INSERT INTO book (name,img,price,writer) VALUES (?,?,?,?)");prep_stmt->setString(1, book.name);prep_stmt->setString(2, book.img);prep_stmt->setString(3, book.price);prep_stmt->setString(4, book.writer);bool updatecount = prep_stmt->executeUpdate();if (!updatecount){return state->getUpdateCount();}else{return 0;}}~Mysql()//析构函数{delete state;delete con;}};/*
int main()
{BookInfor book;book.img = "dd";book.writer = "dd";book.name = "dd";book.price = "dd";Mysql m;m.prepare_insert(book);
}
*/

这篇关于vs2015利用connector c++对数据库操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136731

相关文章

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文