zoukankan      html  css  js  c++  java
  • mysql-connetor-c 自动创建数据库、数据库表的命令

    1.首先连接MySQL默认的数据库mysql

    // 参数说明:
    // strIP: MySQL数据库的IP地址
    // nPort: MySQL数据库的端口号
    // strDBName: 要连接的数据库(mysql)
    // strUserName: 连接MySQL数据库的用户名
    // strPassword: 连接MySQL数据库的密码
    bool Connect( const std::string& strIP, int nPort, const std::string& strDBName, 
        const std::string& strUserName, const std::string& strPassword )
    {
        if ( nullptr == (m_hMysql = mysql_init(nullptr)) )
        {
            printf("mysql_init() failed!");
            return false;
        }
    
        if( nullptr == mysql_real_connect( m_hMysql, strIP.c_str(), strUserName.c_str(), 
            strPassword.c_str(), strDBName.c_str(), nPort, nullptr, 0) )
        {
            printf("mysql_real_connect() failed!");
            return false;
        }
    return true;
    }

    调用示例:

        bool ret = Connect("127.0.0.1", 3306, "mysql", "test", "test"); // 注意:"mysql"是MySQL自己的数据库
        if (!ret)
        {
            printf("connect mysql failed
    ");  
        }

    2.创建自己的数据库test

    bool CreateDatabase(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = CreateDatabase("CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci");
    if (!ret)
    {
      printf("CreateDatabase failed
    ");  
    }

    3.切换到自己的数据库test

    bool ChangeDatabase(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = ChangeDatabase("USE test");
    if (!ret)
    {
      printf("ChangeDatabase failed
    ");  
    }

    4.创建数据库表t_data

    bool CreateTable(const std::string& strSQL)
    {
        if (nullptr == m_hMysql || strSQL.empty())
        {
            return false;
        }
    
        if (MYSQL_OK != mysql_query(m_hMysql, strSQL.c_str()))
        {
            printf("mysql_query failed, sql:%s
    ", strSQL.c_str());
            return false;
        }
        return true;
    }

    调用示例:

    bool ret = CreateTable("CREATE TABLE IF NOT EXISTS t_data ( Id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID', DATA VARCHAR(256) NOT NULL COMMENT '数据位置', PRIMARY KEY (Id) ) ENGINE=INNODB DEFAULT CHARSET=utf8");
    if (!ret)
    {
        printf("create table failed
    ");
    }
  • 相关阅读:
    Linux常用命令
    杀死进程端口
    Spring boot项目的打包发布
    关于xshell和文件传输相关
    Windows10开发环境搭建
    Windows10设置系统参数
    windows10禁止更新
    Postgresql9.6基础使用(Windows 解压版)
    (转载)Thingsboard入门教程:本地环境搭建和源码编译安装,献给thingsboard编译失败的同学,教程不断完善中,文章最后是thingsboard常见编译失败的问题总结
    系统同时安装 Open JDK and Oracle JDK(Ubuntu16.04)
  • 原文地址:https://www.cnblogs.com/qingtian224/p/9849896.html
Copyright © 2011-2022 走看看