#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的更多相关文章

  1. mysql Connector C++ 操作数据库 vs2012

    最近想写一个应用程序,要连接和操作mysql数据库,以前只是用c++ builder 操作过mysql数据库,那是用控件操作的,感觉比较弱智,但是c++ builder vcl控件感觉在多线程里比较坑 ...

  2. mysql.connector 事务总结

    mysql.connector事务总结: connection.autocommit = 0 (默认值) 事务处理 使用 connection.commit()方法 #!/usr/bin/env py ...

  3. 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL

    创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...

  4. vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错

    包含头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/state ...

  5. 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 ...

  6. [转]MySQL Connector/C++(一)

    http://www.cnblogs.com/dvwei/archive/2013/04/18/3029464.html#undefined#undefined MySQL Connector/C++ ...

  7. mysql.connector操作mysql的blob值

    This tutorial shows you how to work with MySQL BLOB data in Python, with examples of updating and re ...

  8. Ubuntu & MacOS安装Mysql & connector

    Ubuntu & MacOS安装Mysql & connector 1. 安装MySql sudo apt-get install mysql-server apt-get insta ...

  9. 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 ...

随机推荐

  1. Java Web基础——Action+Service +Dao三层的功能划分 (转载)

    原文:https://blog.csdn.net/inter_peng/article/details/41021727 仅供自己学习使用: 1. Action/Service/DAO简介: Acti ...

  2. 2018-12-20 第二章Java 预习作业

    一.什么是变量?如何使用变量? 答:变量是在程序运行中其值可以改变的量,它是Java程序的一个基本存储单元. 变量的语法格式如下: [访问修饰符]变量类型 变量名[=初始值]: 二.java中基本数据 ...

  3. Facade模式实现文件上传(Flash+HTML5)

    一.前言 确定了渐进式增强的上传方式,接下来我们需要将上传功能从具体的业务逻辑中剥离出来,作为公共组件供业务层调用.这就要求我们必须对业务层隐藏上传细节,只暴露统一的上传API.这时候大家是不是跟我一 ...

  4. Regular Expression 正则表达式

    1. "^"表示以什么字符开始,"$"表示以什么字符结束: 2. \w表示字符类,包括大小写字母和数字: 3. “+”表示一个或多个,"*" ...

  5. 刚在虚拟机上装的Linux系统,ifconfig后IP地址怎么成了127.0.0.1了

    之前在虚拟机上装了Linux系统,用了一段时间后想删除了重新装一下,然而装完以后ifconfig后,出现的是 [root@localhost ~]# ifconfig lo Link encap:Lo ...

  6. Android自定义之流式布局

    流式布局,好处就是父类布局可以自动的判断子孩子是不是需要换行,什么时候需要换行,可以做到网页版的标签的效果.今天就是简单的做了自定义的流式布局. 具体效果: 原理: 其实很简单,Measure  La ...

  7. 用Webstorm 运行React-native 工程时,出错:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

    解决方法:在 终端执行如下命令 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/ 注意:前提是你已经安装了xcode

  8. 爬虫入门之jsonPath PhantomJS与 selenium详解(六)

    1 jsonPath数据格式 pip安装: pip install jsonpath 用来解析json格式的字符串,类似于xpath (1) json对象的转换 json.loads() json.d ...

  9. 【Leetcode】【Easy】Remove Element

    Given an array and a value, remove all instances of that value in place and return the new length. T ...

  10. myeclipse 阿里巴巴java开发规范

    今天发现阿里巴巴搞了个java开发规范,然后火了: 然后发现我也整了一下: 阿里巴巴java开发规范宣传页: http://mp.weixin.qq.com/s/IbibsXlWHlM59kfXJqR ...