c++ mysql数据库编程(linux系统)

这篇具有很好参考价值的文章主要介绍了c++ mysql数据库编程(linux系统)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ubuntu下mysql数据库的安装

ubuntu安装mysql(图文详解)-CSDN博客https://blog.csdn.net/qq_58158950/article/details/135667062?spm=1001.2014.3001.5501

项目目录结构

c++ mysql数据库编程(linux系统),c++,数据库,c++,mysql

数据库及表结构

c++ mysql数据库编程(linux系统),c++,数据库,c++,mysql

public.h

//打印错误信息 

#ifndef PUBLIC_h
#define PUBLIC_H

#include<iostream>
using namespace std;

// 打印源文件的文件名、所造行号和时间戳
#define LOG(str)\
    cout<<__FILE__<<":"<<__LINE__<<" "<<\
    __TIMESTAMP__<<" : "<<str<<endl;

#endif

这段代码是一个宏定义,它定义了一个名为 LOG 的宏。

  • __FILE__ 是一个预定义宏,它会在编译时被替换为当前源文件的文件名(包括路径)。
  • __LINE__ 也是一个预定义宏,它会在编译时被替换为当前代码所在的行号。
  • __TIMESTAMP__ 是一个非标准的宏,在许多编译器中并不支持。它被替换为编译时的时间戳。

该宏的作用是在输出日志时打印出当前源文件的文件名、所在行号和时间戳,以及传入的日志内容。

MySqlConn.hpp 

//与mysql进行交互的类,包括mysql的连接已经操作

#ifndef MYSQLCONN_H
#define MYSQLCONN_H
#include<string>
#include "mysql/mysql.h"

class MySqlConn
{
public:
    //初始化数据库连接
    MySqlConn();
    //释放数据库连接
    ~MySqlConn();

    //连接数据库
    bool connection(string ip,unsigned short port,string user,string passwd,string dbname);
    // bool connection();

    //更新操作,insert,delete,update
    bool update(string sql);
    //查询操作
    MYSQL_RES* query(string sql);

private:
    MYSQL *_conn;
};
#endif

这段代码实现了一个 MySQL 数据库连接的封装类 MySqlConn,该类提供了以下功能:

  1. 初始化和释放数据库连接。
  2. 连接数据库。
  3. 执行更新操作(insert, delete, update)。
  4. 执行查询操作(select)并返回结果集。

MySqlConn.cpp 

#include "public.h"
#include "MySqlConn.hpp"

//初始化数据库连接
MySqlConn::MySqlConn()
{
    //初始化数据库连接
    _conn=mysql_init(nullptr);
}
//释放数据库连接
MySqlConn::~MySqlConn()
{
    if(_conn!=nullptr)
    {
        mysql_close(_conn);
    }
}

//连接数据库
// bool MySqlConn::connection()
bool MySqlConn::connection(string ip,unsigned short port,string user,string passwd,string dbname)
{
    MYSQL* p=mysql_real_connect(
        _conn,//数据库连接
        //mysql数据库内部使用c风格的字符串,需要使用c_str()函数将string类型字符串进行转换
        ip.c_str(),//ip地址
        user.c_str(),//用户名
        passwd.c_str(),//密码
        dbname.c_str(),//数据库名称
        port,//mysql端口号
        nullptr,0
    );

    if(p)
    {
        mysql_query(_conn,"SET NAME UTF8");
        // mysql_options(_conn, MYSQL_SET_CHARSET_NAME, "gb2312");
    }

    LOG("数据库连接成功!");
    return p;
}

//更新操作
bool MySqlConn::update(string sql)
{
    //insert,delete,update
    if(mysql_query(_conn,sql.c_str()))
    {
        LOG("更新失败:"+sql);
        const char* errorMsg = mysql_error(_conn);
        LOG("错误信息:" + string(errorMsg));
        return false;
    }
    return true;
}
//查询操作,select
MYSQL_RES* MySqlConn::query(string sql)
{
    if(mysql_query(_conn,sql.c_str()))
    {
        LOG("查询失败:"+sql);
        LOG("错误信息:" + string(mysql_error(_conn)));
        return nullptr;
    }
    return mysql_use_result(_conn);
}

sprintf() 函数是 C 语言标准库中的一个格式化输出函数,它的原型如下:

int sprintf(char *str, const char *format, ...);

sprintf() 函数的作用是将格式化的字符串输出到指定的字符数组 str。它的参数与 printf() 函数类似,第二个参数 format 是格式化字符串,后面的可变参数则是要输出的数据。

sprintf() 返回输出的字符数,如果出错,则返回一个负数。

sprintf() 函数可以用于将格式化的数据转换为字符串,然后将字符串输出到一个缓冲区中。

main.cpp

#include<iostream>
#include"public.h"
#include"MySqlConn.hpp"
using namespace std;

int main()
{
    // LOG("this is log msg!!!");
    string ip = "127.0.0.1";
    string user = "root";
    string passwd = "123456";
    string dbname = "chat";

    MySqlConn conn;//创建mysql对象
    //定义sql语句
    char sql[1024]={0};
    sprintf(sql,
            "insert into user(name,age,sex) values('%s',%d,'%s')",
            "jack",20,"male");
    //连接数据库
    conn.connection(ip,3306,user,passwd,dbname);
    //执行sql
    conn.update(sql);
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(mysql)

# 编译配置选项
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}  -g)

# 配置可执行文件的生成路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

aux_source_directory(. SRC_LIST)

add_executable(mysqltest ${SRC_LIST})
target_link_libraries(mysqltest mysqlclient)

进入build文件夹中编译

cmake ..
make

c++ mysql数据库编程(linux系统),c++,数据库,c++,mysql

进入bin目录下执行

c++ mysql数据库编程(linux系统),c++,数据库,c++,mysql 查看结果

c++ mysql数据库编程(linux系统),c++,数据库,c++,mysql文章来源地址https://www.toymoban.com/news/detail-811531.html

到了这里,关于c++ mysql数据库编程(linux系统)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Linux系统中安装MySQL数据库

    (一)、准备 1、Linux环境 视频教程:https://www.bilibili.com/video/BV15m4y1d7ZP 2、检查内存 5.6及以上版本的MySQL要求Linux系统虚拟内存不能小于1G,否则MySQL可能无法运行。 3、卸载mariadb (二)、安装 1、下载 下载地址:https://mirrors.aliyun.com/mysql/MySQL-8.0,这里下载mysql-8.0.28-el7-x86_64.

    2024年02月04日
    浏览(37)
  • Linux系统MySQL数据库的备份及应用

    本节主要学习了MySQL数据库的备份:概念,数据备份的重要性,造成数据丢失的原因,备份的类型,常见的备份方法,实例与应用等。 目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 1、物理与逻辑角度 ①物理备份—对数据库操作系统的物理文件

    2024年02月15日
    浏览(39)
  • 系统学习Linux-MySQL数据库备份(四)

    数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,一遍在数据库丢失或损坏时进行恢复,数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务。 备份的主要目的是灾难恢复,备份还可以测试应

    2024年02月15日
    浏览(55)
  • 数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程

    几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。 宾馆管理系统通过提供顾客和员工信息之间的

    2024年02月05日
    浏览(53)
  • 数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程(2)

     几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。 宾馆管理系统通过提供顾客和员工信息之间

    2024年02月03日
    浏览(57)
  • PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

    一、源码特点     PHP 房产网站系统是一套完善的WEB设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88233553 论文 https://download.csdn.net/download/qq_41221322/88233555 PHP 房产网站系统Drea

    2024年02月12日
    浏览(57)
  • JSP在线小说系统用eclipse定制开发mysql数据库BS模式java编程jdbc

    一、源码特点      JSP 在线小说系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用java语言开发。 JSP在线小说系统用eclipse定制开发mysql数据库

    2024年02月12日
    浏览(47)
  • 基于Linux操作系统中的MySQL数据库操作(三十)

    MySQL数据库安装 目录 一、概述 (一)什么是数据库 (二)数据库能干什么     1、企业应用     2、金融行业     3、电子商务     4、社交媒体     5、物联网 (三)为什么要用数据库,优势、特性?     1、可靠性和稳定性     2、数据管理能力     3、数据共享和集成  

    2024年02月15日
    浏览(60)
  • java碳排放数据信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一、源码特点     java Web碳排放数据信息管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环 境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java Web碳排放数据信

    2024年01月22日
    浏览(54)
  • java 宠物医院系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

    一、源码特点     java 宠物医院系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java Web 宠物医院管理系统1 下载地

    2024年02月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包