mysqlx 学习
mysqlx 学习
资料:https://dev.mysql.com/doc/dev/connector-cpp/8.0/devapi_ref.html
注意事项
使用高版本的 gcc 编译的时候,需要定义宏
-D_GLIBCXX_USE_CXX11_ABI=0
,否则会出现链接错误。不要同时
using namespace std;
和using namespace mysqlx
,因为string
会发生冲突。本文测试的环境为:
os:
Linux skyfire-pc 4.19.59-1-MANJARO #1 SMP PREEMPT Mon Jul 15 18:23:58 UTC 2019 x86_64 GNU/Linux
gcc:9.1.0
mysqlx 位置:
/home/skyfire/Desktop/mysql-connector-c++-8.0.16-linux-glibc2.12-x86-64bit
mysql 版本:8.0.16
mysql 用户名:root
mysql 密码:root
连接数据库
CMakeLists.txt 如下:
(无特殊说明,以下会继续使用此配置)
代码如下(为了减少代码行数,已经去掉了异常处理):
编译运行。如果连接失败,会抛出异常。
创建/获取 Schema
代码如下:
代码创建一个 Schema, 如果已存在,就使用已有的 Schema。
如果第二个参数为 false ,在 Schema 已存在时,会抛出异常。
下面注释的部分应用于确定已存在 Schema 的情况,第二个参数意义为是否立即检查 Schema 的存在性。
表存储(SQL)
在数据库创建一个表:
获取表
getTable
可以获取一张表,第二个参数代表是否检测表的存在性。
CRUD 操作
文档存储(NoSql)
创建/获取集合
在 Schema 上创建一个集合,getCollection 函数与 createCollection 函数的区别与 Schema 相关函数类似,不再赘述。
CRUD 操作
mysqlx 对文档的操作很友好,大致看一下就明白含义了。
输出:
版权声明: 本文为 InfoQ 作者【SkyFire】的原创文章。
原文链接:【http://xie.infoq.cn/article/628d3bd3d8ba5bad9358c06d8】。文章转载请联系作者。
评论