C++数据库编程 MySQL Connecttor C++增删改查

C++数据库编程简介

C++数据库编程 ODBC简介

C++数据库编程 ODBC连接SQL Server数据库

C++数据库编程 ODBC插入数据

C++数据库编程 ODBC查询数据

C++数据库编程 ODBC删除数据

C++数据库编程 ODBC修改数据

C++数据库编程 ODBC连接MySQL增删改查数据

C++数据库编程 MySQL Connecttor C++简介

C++数据库编程 MySQL Connecttor C++增删改查

文章目录

  • 1. Connector c++连接数据库
  • 2. 环境配置
  • 3. Connector c++插入数据
  • 4. Connector c++查询数据
  • 5. Connector c++修改数据
  • 6. Connector c++删除数据
  • 7. 示例代码

1. Connector c++连接数据库

  • 下载 MySQL Connector C++头文件与库

  • 下载 Boost头文件与库

  • 使用 get_mysql_driver_instance0获取驱动实例

  • 使用 connecto方法连接数据库

2. 环境配置

包含头文件目录,因为我们下载的是64位的C++ Connector,所以需要选择X64

需要B0ost头文件,则必须安装 Boost1.59.0或更高版本,并且头的位置必须添加到 Include路径中。

C++数据库编程 MySQL Connecttor C++增删改查_第1张图片

3. Connector c++插入数据

  • 使用 Connectionconenct()连接数据库
  • 使用 ConnectionprepareStatemen()准备一条语句,并填充SQL语句的?参数
  • 使用 PreparedStatement对象的 executeUpdate方法执行语句
  • 使用 Connectionclose()关闭数据库

4. Connector c++查询数据

使用 Connection的 connect()连接数据库

使用 Connection的 createStatement()准备一条语句

使用 Statement对象的 executeQuery()方法执行语句,获取Resultset对象遍历数据

使用 Connection的 close()关闭数据库

5. Connector c++修改数据

  • 使用 Connection的 connect()连接数据库
  • 使用 Connection的 createStatement()准备一条语句
  • 使用 Statement对象的 executeUpdate()方法执行语句,获取返回受影响的行数
  • 使用 Connection的 close()关闭数据库

6. Connector c++删除数据

  • 使用 Connection的 connect()连接数据库
  • 使用 Connection的 createStatement()准备一条语句
  • 使用 Statement对象的 executeUpdate()方法执行语句,获取返回受影响的行数
  • 使用 Connection的 close()关闭数据库

7. 示例代码

#include 
#pragma comment(lib, "mysqlcppconn.lib")

#include
using namespace std;

int main()
{
     
	//连接字符串
	const char* host = "tcp://192.168.0.199:3306/test";

	const char* user = "root";//用户名
	const char* passwd = "root";//密码

	try
	{
     
		//获取驱动实例
		sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();

		//connect连接数据库,返回Connection对象指针
		sql::Connection* conn = driver->connect(host, user, passwd);

		if (conn != nullptr && conn->isClosed() == 0) {
     
			cout << "数据库连接成功!" << endl;
		}
		 
		//设置客户端地连接编码格式为GBK
		sql::Statement *stmt = conn->createStatement();
		stmt->execute("SET character set gbk");

		/
		//插入数据
		if(true)
		{
     
		    //创建PreparedStatement准备sql语句
			const sql::SQLString  sql = "INSERT  INTO Student VALUES(?,?,?);";
			sql::PreparedStatement  * pstmt = conn->prepareStatement(sql);
		
			//填充?参数
			pstmt->setInt(1, 1000);
			pstmt->setString(2, "学习");
			pstmt->setInt(3, 22);

			//执行sql语句
			int ret= pstmt->executeUpdate(); // executeUpdate适用于UPDATE  INSERT  DELETE操作
			if (ret == 1) {
     
				cout<<"插入数据成功!"<<endl;
			}
			//关闭语句
			pstmt->close();

		}
		/
		//查询数据
		if(true)
		{
     
			const sql::SQLString  sql = "SELECT  *  FROM   Student ;";
			sql::ResultSet * rs=    stmt->executeQuery(sql);// executeQuery适用于 SELECT

			while (rs != nullptr && rs->next()) {
     

				int id= rs->getInt("id");//按 列名获取数据
				sql::SQLString  name=  rs->getString(2);//按序号方式获取列数据
				int age = rs->getInt(3);

				cout << id << "\t" << name.c_str() << "\t" << age << endl;
			}
			 
			//关闭结果集
			rs->close();
		} 
		/
		//修改数据
		if (true)
		{
     
			const sql::SQLString  sql = "UPDATE  Student  SET  name='天天向上'  WHERE id =1000;";
			int  effectRows= stmt->executeUpdate(sql);// executeUpdate适用于 UPDATE INSERT  DELETE
			cout << "修改数据成功" << effectRows << "行受影响!" << endl; 
		}

		//
		//删除数据
		if (true)
		{
     
			/*写法一
			const sql::SQLString  sql = "DELETE  FROM Student WHERE id =1000;";
			int  effectRows = stmt->executeUpdate(sql);// executeUpdate适用于 UPDATE INSERT  DELETE
			cout << "删除数据成功" << effectRows << "行受影响!" << endl;
			*/


			const sql::SQLString  sql = "DELETE  FROM Student WHERE id =1000;";
			// const sql::SQLString  sql = "SELECT  * FROM Student WHERE id =1000;";
			 bool  ret= stmt->execute(sql);// execute适用于 UPDATE INSERT  DELETE  SELECT
			 if (ret)
			 {
     //代表是SELECT 操作,可以获取结果集
				 sql::ResultSet * rs = stmt->getResultSet();
				 cout << "查询操作,返回了数据集" << rs << endl;
			 }
			 else 
			 {
     //代表是UPDATE INSERT  DELETE操作,可以获取受影响的行数
				 int  effectRows = stmt->getUpdateCount();
				  cout << "删除数据成功" << effectRows << "行受影响!" << endl;
			 }

		}
		//


		//关闭语句
		stmt->close();

		//关闭数据库连接
		conn->close();
		cout << "关闭数据库连接成功!" << endl;

		delete conn;
	}
	catch (sql::SQLException& e) {
     
		std::cout << "错误: " << e.getErrorCode() << "  " << e.what();
	}
}

你可能感兴趣的:(#,0.1,C/C++,#,3.3,数据库,SQL,c++,数据库,mysql,JDBC)