c++的编写用vs:下载地址:
https://visualstudio.microsoft.com/zh-hans/downloads/
c++连接redis:
先在下面地址下载一个包
https://gitee.com/xungen/redisconnect#1%E4%B8%8B%E8%BD%BD%E6%BA%90%E7%A0%81
我存到了
然后打开vs软件,
新创一个项目,点击项目的右键
然后把目录写进去
这样就可以导包了,
#include "RedisConnect.h"
#include <iostream>
int main(int argc, char** argv)
{
string val;
//初始化连接池
RedisConnect::Setup("127.0.0.1", 6379,"password");
//从连接池中获取一个连接
shared_ptr<RedisConnect> redis = RedisConnect::Instance();
//设置一个键值
redis->set("test_c++_key", "1111");
//获取键值内容
redis->get("test_c++_key", val);
cout << val << endl;
//调用getStatus方法获取ttl命令执行结果
//printf("超时时间:%d\n", redis->getStatus());
//执行del命令删除键值
//redis->execute("del", "key");
return 0;
}
linux操作redis
在一个文件夹里面创建一个cpp文件和config文件夹
把上述下载的redisconnect.zip放到config文件夹里面
编写cpp文件:
#include "RedisConnect.h"
#include <iostream>
int main(int argc, char** argv)
{
string val;
RedisConnect::Setup("127.0.0.1", 6379,"1234567");
shared_ptr<RedisConnect> redis = RedisConnect::Instance();
redis->set("test_c++_key", "1111");
redis->get("test_c++_key", val);
return 0;
}
然后在命令行里面输入
g++ -std=c++11 -I /root/c++/config/redisconnect check_database.cpp -o test便可以运行。
windows的c++通过vs2019连接mysql
windows安装了mysql后会有以下目录
1、新创一个c++项目
2、在项目点击右键
加入windows安装了的mysql目录
在项目配置里面加入以上的目录后加可以用mysql了
编写一个cpp文件
写入以下代码
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "mysql.h"
using namespace std;
#pragma comment(lib, "libmysql.lib")
int main() {
MYSQL* conn;
MYSQL_RES* res=NULL;
const char* server = "127.0.0.1";
const char* user = "root";
const char* password = "1234567";
const char* database = "springtest";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server, user, password, database, 3306, NULL, 0))
{
std::cout << "没连接上" << endl;
return -1;
}
mysql_query(conn, "set names gbk");
mysql_query(conn, "select * from users");
res = mysql_store_result(conn);
//unsigned int rowcount = mysql_num_rows(res);
unsigned int fieldcount = mysql_num_fields(res);
MYSQL_FIELD* field = NULL;
for (int i = 0; i < fieldcount; i++) {
field=mysql_fetch_field_direct(res, i);
cout << field->name << endl;
}
MYSQL_ROW row ;
row = mysql_fetch_row(res);
while (row != NULL)
{
for (unsigned int i = 0; i < fieldcount; i++)
{
cout << row[i] << endl;
}
row = mysql_fetch_row(res);
}
char sql[100];
//将要执行的SQL语句放入数组中
sprintf(sql, "INSERT INTO springtest.users (`id`, `name`, `email`) VALUES ('%d', '%s', '%s');", 2, "3", "32");
cout << sql << endl;
if (mysql_query(conn, sql))
{
std::cout << mysql_error(conn) << endl;
}
else {
std::cout << "插入成功" << endl;
}
//mysql_commit(conn);
mysql_free_result(res);
mysql_close(conn);
mysql_server_end();
return 0;
}
好了,下面到linux连接
linux的c++连接mysql
我的linux是centos
先看命令
g++ -std=c++11 -I /usr/include/mysql -L /usr/lib/mysql test2.cpp -o test2 -lmysqlclient,
这条命令很明显是找到两个mysql包然后实现软连接,
centos,查看mysql的状态,一定要启动成功,才能运行c++脚本,也可以启动成功后,把它停掉,然后照样可以运行c++脚本,总之第一次需要启动mysql成功
centos7安装mysql的流程
yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
yum install mysql-community-server
yum install mysql-community-devel
一定要安装mysql-community-devel,否则没有 /usr/include/mysql
安装成功后输入whereis mysql
然后建立一个软连接
ln -s /usr/lib64/mysql/* /usr/lib/
做好便可以运行c++脚本了,代码和上面的一样
g++ -std=c++11 -I /usr/include/mysql -L /usr/lib/mysql test2.cpp -o test2 -lmysqlclient
windows的c++使用json
https://github.com/open-source-parsers/jsoncpp到这里面下载
然后打开cmd命令行,
进入jsoncpp-master目录
输入python amalgamate.py
就会在jsoncpp-master目录里面生成一个dist文件夹
打开它,把整个文件夹和cpp文件拖进vsc++项目里面的头文件里面
在项目里面输入代码
#include "RedisConnect.h"
#include <iostream>
#include <json/json.h>
//下面的include用于linux
//#include<jsoncpp.cpp>
using namespace std;
int main(int argc, char** argv)
{
string stock_name = "test_key";
RedisConnect::Setup("127.0.0.1", 6379);
shared_ptr<RedisConnect> redis = RedisConnect::Instance();
Json::Value root;
Json::Value root2;
for (int i = 0; i < 7; i++) {
root2["all2"] = Json::Value();
root2["all2"].append(i);
root["all"].append(root2["all2"]);
}
cout << string(stock_name) << endl;
string strValue = root.toStyledString();
redis->execute("hset", "test", stock_name, strValue);
return 0;
}
运行后在redis-cli打开的结果
你用其他的语言提取的话,就可以提取出来一个二维数组了
linux的c++使用json
同样是那个dist文件夹
放到一个目录下面,同时创建一个cpp文件
在里面输入代码
#include <iostream>
#include <json/json.h>
#include<jsoncpp.cpp>
using namespace std;
int main(int argc, char** argv)
{
Json::Value root;
root["name"] = Json::Value("qeqw");
cout << root << endl;
return 0;
}
然后输入命令行
g++ -std=c++11 -I /root/c++/dist check_database.cpp -o check_database
就完成啦,自己注意目录哦,百度里面全部的人都太乱了,而且又复杂,我小白花了几天搞出来的,我特别讨厌百度里面猥琐的步骤,最后还不成功,有点小恶心,这些办法简单很多。