ubuntu 使用 mysql 并将其连接到C++程序中

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kunyXu/article/details/78864026

安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安装过程会提示需要设置密码,这样便完成了mysql的安装,可以通过如下命令登录:

mysql -u root -p      其中 -u表示选择登录的用户名  -p表示登录的数据库```

一些在终端创建、修改数据库的方法:使用数据库
注意事项:
1. 创建数据库时要记得选定字符串的编码方式,一般用utf8
2. 一旦数据库建立,它的编码方式难以改变,不要试图通过修改/etc/mysql/my.con文件,这样会导致数据库不能启动,我就在这里被坑了,这里说的很清楚

安装workbench可视化界面管理数据库

sudo apt-get install mysql-workbench

如何管理、使用百度之。

链接到C++项目

首先需要安装一个链接库:

sudo apt-get install libmysqlcppconn-dev

CMakeLists.txt文件组织如下:(注意target_link_libraries加了两个链接)

cmake_minimum_required(VERSION 3.5)
project(database_test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(database_test ${SOURCE_FILES})
target_link_libraries(database_test mysqlcppconn-static mysqlclient)

main.cpp文件:

#include <stdlib.h>
#include <iostream>
#include "mysql_connection.h"
//#include <mysql_driver.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
using namespace std;
int main() {
    sql::Driver *driver;
    sql::Connection *con;
    sql::Statement *stmt;
    sql::ResultSet *res;
    sql::PreparedStatement *pstmt;
    /* create a connection */
    driver = get_driver_instance();
    con = driver->connect("tcp://127.0.0.1:3306", "xky", "123456");
    con->setSchema("test");
    stmt = con->createStatement();
    res = stmt->executeQuery("select * from unit");
    while (res->next())
    {
        cout << "id = " << res->getInt("id") << " ";
        cout << "name = " << res->getString("unit_name")<<endl;
    }
    cout << endl;
    delete stmt;
    stmt = con->createStatement();
    stmt->execute("drop table if exists test_id");
    stmt->execute("create table test_id(id INT)");
    delete stmt;
    pstmt = con->prepareStatement("insert into test_id(id) values(?)");
    for(int i = 0; i < 10; i++)
    {
        pstmt->setInt(1, i);
        pstmt->executeUpdate();
    }
    delete pstmt;
    pstmt = con->prepareStatement("select id from test_id order by id ASC");
    res = pstmt->executeQuery();
//    res->afterLast();
    while(res->next())
    {
        cout << "\t... MySQL counts: " << res->getInt("id") << endl;
    }
    delete res;
    delete pstmt;
    delete con;
    return EXIT_SUCCESS;
}

更多说明,可以查看官网

猜你喜欢

转载自blog.csdn.net/kunyXu/article/details/78864026
今日推荐