首页 > 数据库 >C++动态链接MySQL库

C++动态链接MySQL库

时间:2022-11-15 21:02:47浏览次数:42  
标签:std mysql C++ MySQLConnectionPool sql MySQL include 链接

C++链接MySQL库

库安装目录
在这里插入图片描述
在这里插入图片描述
CMakeList

cmake_minimum_required(VERSION 3.22)
project(MySQLConnectionPool)

include_directories(/usr/include/mysql)	#安装库路径

set(CMAKE_CXX_STANDARD 17)

add_executable(MySQLConnectionPool main.cpp)


target_link_libraries(MySQLConnectionPool mysqlclient)

测试代码

//1.test.c
#include<cstdio>
#include "mysql/mysql.h"

int main() {
  MYSQL * mysql = NULL;
  if ((mysql = mysql_init(NULL)) == NULL) {
	fprintf(stderr, "error in mysql_init\n");
	exit(1);
  }

  mysql = mysql_real_connect(mysql, "localhost", "root", "lhh123456", "Test", 3306, 0, 0);

  if (!mysql) {
	fprintf(stderr, "connection failed!\n");
	exit(1);
  }

  printf("Success!\n");
  return 0;
}

在这里插入图片描述
不使用连接池
在这里插入图片描述
使用连接池
在这里插入图片描述

一定注意使用show variables like "max_connections";查看MySQL最大连接数,连接池最大连接不能超过这个数,使用set GLOBAL max_connections=1000;可以修改最大连接数

void test(int i) {
  char sql[512]{0};
  Connection conn;
  std::this_thread::sleep_for(std::chrono::milliseconds(2));
  sprintf(sql, "insert into Info(ID,UserName,IDCard,Passwd)values(%d,'%s','%s','%s');",
		  i, "zhangsan", std::to_string(i).c_str(), "123456");
  conn.connect("127.0.0.1", 3306, "root", "lhh123456", "Test");
  conn.update(sql);
}
void test1(int i) {
  char sql[512]{0};
  ConnectionPool *pool = ConnectionPool::getConnectionPool();
  std::shared_ptr<Connection> sp = pool->getConnection();
  sprintf(sql, "insert into Info(ID,UserName,IDCard,Passwd)values(%d,'%s','%s','%s');",
		  i, "zhangsan", std::to_string(i).c_str(), "123456");
  sp->update(sql);
}

标签:std,mysql,C++,MySQLConnectionPool,sql,MySQL,include,链接
From: https://www.cnblogs.com/Lhh-9999/p/16893884.html

相关文章

  • MySQL in Windows安装以及异名恢复的简单过程
    下载相关建议获取最新版本的Mysql数据库可以获取zip格式的安装文件https://dev.mysql.com/downloads/mysql/或者获取msi格式的安装文件https://dev.mysql.com/dow......
  • Mysql
    1:mysql服务器处理client分三部分:链接管理解析与优化存储引擎(表处理器,Innodb)2:字符集和比较规则一个比较规则对应一个的字符集,而Mysql之所以能排序就是把值根据字......
  • windows--cmake与c++的使用教程(4)
    1概述本文基于前文环境本节目标:编写创建可执行程序exe的cmake脚本2核心代码add_executable命令用于生成可执行程序3用法add_executable(项目名代码文件)......
  • 一个很好用的 C++ 高精度整数板子
    点击查看代码typedeflonglongll;typedeflongdoubleld;typedefcomplex<ld>pt;constintMOD=1e9+7;constldPI=acos(-1.L);template<classT>struc......
  • 8.0以上版本MySQL-Driver连接数据库
    一、URLURL解析变更`之前我的MySQL数据库驱动mysql-connector-java版本号为5.1.34,在升级成8.0.9-rc版本后,发现原来的连接方式报错了。故在这里记录一下新版本的MySQL......
  • C++类的内存结构
     第一种这个类是个空类 sizeof会占用一个字节 newt也是占用一个字节但作为其他类的成员变量可能会占用1-2-4-8字节这个是类的内存对齐导致 第2种这......
  • MySQL视图
    准备工作,新建名为students的数据,三张表分别是student,courses,stu_cou,并创建外键约束,级联删除更新,插入数据。/*创建数据库*/createdatabaseifnotEXISTSstudentscha......
  • windows10单机使用mysql8实现主从复制
    一、在windows10下开启两个MySQL实例,端口3306作为主服务器,端口3307作为从服务器,具体安装参看:https://www.cnblogs.com/simon-xie/p/13763145.html二、主服务器配置1、my.......
  • MySQL分表分区
    表分区表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。水平分区这种形式分区是......
  • MySQL 源码解读之-语法解析(三)
    MySQL源码解读之-语法解析(三)在前两篇文章中已经讲述了bison如何解析sql语句并生成AST树。那么MySQL是如何和bison的程序关联起来的呢,并通过gdb调试一下。在MyS......