MySql Connector/C++8事务处理Demo
#include <iostream>
#include <exception>
#include <vector>
#include <unistd.h>
#include <mysqlx/xdevapi.h>
#define D_USER "root"
#define D_PWD "mysql"
#define D_HOST "localhost"
#define D_PORT 33060
#define D_DB "D_COMPANY"
using std::cout;
using std::endl;
int main(void)
try
{
//创建会话
mysqlx::Session sess(
mysqlx::SessionOption::USER, D_USER,
mysqlx::SessionOption::PWD, D_PWD,
mysqlx::SessionOption::HOST, D_HOST,
mysqlx::SessionOption::PORT, D_PORT,
mysqlx::SessionOption::DB, D_DB,
mysqlx::SessionOption::SSL_MODE, mysqlx::SSLMode::DISABLED
);
//打开事务,之后的DDL或DML操作都要手动提交或回滚
cout << ">> turn on transaction." << endl;
sess.startTransaction();
//存储保存点
std::vector<std::string> savepoints;
cout << ">> insert into t_dept." << endl;
savepoints.emplace_back(sess.setSavepoint()); //设置保存点
mysqlx::SqlStatement stmt = sess.sql("INSERT INTO T_DEPT VALUES(?, ?, ?)");
stmt.bind(40, "OPERATIONS", "BOSTON");
stmt.execute();
cout << ">> insert into t_dept." << endl;
savepoints.emplace_back(sess.setSavepoint());
stmt = sess.sql("INSERT INTO T_DEPT VALUES(?, ?, ?)");
stmt.bind(50, "ENGINEER", "BeiJing");
stmt.execute();
cout << ">> delete from t_dept." << endl;
savepoints.emplace_back(sess.setSavepoint());
mysqlx::SqlResult rset = sess.sql("DELETE FROM T_DEPT WHERE DEPTNO=40").execute();
for(std::string str : savepoints) {
cout << str << endl;
}
sess.rollbackTo(savepoints.at(2)); //回滚到指定保存点
sess.commit(); //提到事务
sess.close(); //关闭会话
cout << "Done!" << endl;
}
catch (mysqlx::Error &err)
{
cout << "ERROR : " << err << endl;
return -1;
}
MySql Connector/C++8事务处理Demo的更多相关文章
- mysql Connector C++ 操作数据库 vs2012
最近想写一个应用程序,要连接和操作mysql数据库,以前只是用c++ builder 操作过mysql数据库,那是用控件操作的,感觉比较弱智,但是c++ builder vcl控件感觉在多线程里比较坑 ...
- mysql.connector 事务总结
mysql.connector事务总结: connection.autocommit = 0 (默认值) 事务处理 使用 connection.commit()方法 #!/usr/bin/env py ...
- 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL
创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...
- vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错
包含头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/state ...
- Using MySQL Connector .NET 6.6.4 with Entity Framework 5
I had been waiting for the latest MySQL connector for .NET to come out so I can move on to the new a ...
- [转]MySQL Connector/C++(一)
http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html#undefined#undefined MySQL Connector/C++ ...
- mysql.connector操作mysql的blob值
This tutorial shows you how to work with MySQL BLOB data in Python, with examples of updating and re ...
- Ubuntu & MacOS安装Mysql & connector
Ubuntu & MacOS安装Mysql & connector 1. 安装MySql sudo apt-get install mysql-server apt-get insta ...
- Snippet: Fetching results after calling stored procedures using MySQL Connector/Python
https://geert.vanderkelen.org/2014/results-after-procedure-call/ Problem Using MySQL Connector/Pytho ...
随机推荐
- Mysql性能调优方法
第一种方法 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的 性能,我们可以将表中字 ...
- 2729:Blah数集
2729:Blah数集 查看 提交 统计 提问 总时间限制: 3000ms 内存限制: 65536kB 描述 大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下: ...
- pId的数据结构转children 数据结构(JS);
在工作中经常遇到需要把带有pId的的list数据转换为children格式的树形结构,一直都没有找到太好的工具函数.偶然间看到了这个函数,研究了下,感觉这个函数很强大,所以记录下来,作为备用,同时也贴 ...
- JavaScript彻底搞懂apply和call方法
彻底搞懂JavaScript中的apply和call方法 call和apply都是为了改变某个函数运行的context上下文而存在的,即为了改变函数体内部this的指向.因为JavaScript的函数 ...
- 菜鸟学习Spring——SpringMVC注解版控制层重定向到控制层
一.概述. SpringMVC中界面请求Contorller1,Contorller1需要重定向到Contorller2中显示其他页面或者做一些业务逻辑,Spring中提供了这个功能利用"r ...
- Popularize what is heart of mobile phone?
From: http://tech.sina.com.cn/mobile/n/2014-09-29/08399657494.shtml 只谈核数没意义 带你重新认识手机SoC 2014年09月29日 ...
- JavaScript性能优化小知识总结(转)
JavaScript的性能问题不容小觑,这就需要我们开发人员在编写JavaScript程序时多注意一些细节,本文非常详细的介绍了一下JavaScript性能优化方面的知识点,绝对是干货. 前言 一直在 ...
- 小组Scrum第一次冲刺
团队任务描述: 在确定完分组,并对于敏捷开发做了相应的了解之后,我们团队开始了第一次的冲刺.对于我们团队的第一次的 Scrum冲刺,我们团队开展了团队会议.首先,我们明确了我们的目标,对其进行了相对初 ...
- python入门8 输入输出
输入 input() 输出 print() #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 输入输出 & ...
- Android进阶笔记09:Android 万能适配器
1. Android 万能适配器 项目中Listview GridView几乎是必用的组件,Android也提供一套机制,为这些控件绑定数据,那就是Adapter.用起来虽然还不错,但每次都 ...