21xrx.com
2024-09-20 05:30:21 Friday
登录
文章检索 我的文章 写文章
C++如何连接数据库用于桌面应用程序
2023-06-24 06:32:34 深夜i     --     --
C++ 连接数据库 桌面应用程序

C++是一种高级编程语言,广泛应用于桌面应用程序的开发。对于一些需要持久化数据的应用来说,连接数据库是必不可少的一步。本文将告诉你如何在C++中连接数据库并实现数据的交互。

一、选择数据库

在选择数据库方面,目前常用的有MySQL、MariaDB、SQLite等,这里我们以MySQL为例。MySQL是一种开源的关系型数据库,广泛应用于Web应用中。在开发桌面应用程序时,我们可以使用C++中自带的MySQL C++ Connector来实现与MySQL数据库的连接。

二、安装MySQL Connector

如何安装MySQL C++ Connector呢?首先我们需要下载MySQL C++ Connector的源代码或安装包。具体的下载地址可以在MySQL官网上找到。下载完成之后,我们需要在操作系统中安装MySQL Connector。Windows下你可以下载安装 EXE 文件,而Linux下则是使用包管理器安装。

三、连接数据库

连接数据库之前,我们需要用MySQL C++ Connector中提供的API对其进行初始化。


#include <mysql_driver.h>

#include <mysql_connection.h>

#include <cppconn/driver.h>

#include <cppconn/exception.h>

#include <cppconn/resultset.h>

#include <cppconn/statement.h>

using namespace std;

using namespace sql::mysql;

try {

  driver = get_mysql_driver_instance();

  conn = driver->connect("tcp://127.0.0.1:3306", "root", "123456");

  stmt = conn->createStatement();

  stmt->executeUpdate("CREATE DATABASE IF NOT EXISTS test");

} catch (sql::SQLException &e) {

  cout << "# ERR: SQLException in " << __FILE__ << endl;

  cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << endl;

  cout << "# ERR: " << e.what();

  cout << " (MySQL error code: " << e.getErrorCode();

  cout << ", SQLState: " << e.getSQLState() << " )" << endl;

  exit(EXIT_FAILURE);

}

以上代码片段,实现了MySQL Connector的初始化和创建一个test数据库,其中参数分别为MySQL服务器的IP地址、用户名和密码。如果连接过程中出现了异常,则会输出错误信息并退出程序。

四、操作数据库

连接数据库成功后,我们可以使用MySQL Connector提供的API来对数据库进行操作。

- 创建表


stmt->executeUpdate("USE test");

stmt->executeUpdate("DROP TABLE IF EXISTS userinfo");

stmt->executeUpdate(

  "CREATE TABLE userinfo("

  "id INT NOT NULL AUTO_INCREMENT,"

  "name VARCHAR(50) NOT NULL,"

  "age INT NOT NULL,"

  "PRIMARY KEY ( id ))");

以上代码片段创建了一个名为userinfo的数据表,包含三个字段:id、name和age。其中id为自增主键,name和age为非空字符串和整型。

- 添加记录


stmt->executeUpdate("INSERT INTO userinfo(name, age) VALUES('Tom', 22)");

stmt->executeUpdate("INSERT INTO userinfo(name, age) VALUES('Mike', 25)");

以上代码片段向userinfo表中添加了两条记录,这里只设置了name和age字段。

- 查询记录


resultSet = stmt->executeQuery("SELECT * FROM userinfo");

while (resultSet->next()) {

  cout << "Id: " << resultSet->getInt("id") << endl;

  cout << "Name: " << resultSet->getString("name") << endl;

  cout << "Age: " << resultSet->getInt("age") << endl;

}

以上代码片段查询了userinfo表中所有的记录,并将结果输出到命令行界面。

五、总结

以上就是使用C++连接MySQL数据库的详细步骤。连接数据库涵盖了如何安装MySQL C++ Connector、初始化连接、操作数据库等等。其中MySQL Connector提供了一套完善的API,可方便的实现连接和数据交互。通过这些内容的学习,我们可以轻松的完成对数据库的连接和数据交互,在开发桌面应用程序中提高编程效率。

  
  
下一篇: C++实现cos函数

评论区

{{item['qq_nickname']}}
()
回复
回复