otlv4 mysql_OTL 使用记录

OTL 操作指南

最近考虑到用cpp连接mysql数据库,本身使用二进制内嵌(加入头文件mysql.h以及静态连接libmysql.lib)的方式,发现不具有跨平台的能力,后续想寻找一个合适的方式来完成跨平台的需求,找了一圈,发现OTL挺方便的,但是网络上并没有直接的《OTL一站式指南》,所以在这里把安装使用过程记录一下。

顺便一提,这里主要是指windows平台的安装。

OTL 简介OTL 是 Oracle, Odbc and DB2-CLI TemplateLibrary 的缩写,是一个操控关系数据库的C++模板库,

所以这里主要是用ODBC的方式连接mysql.开放数据库连接(Open Database Connectivity,ODBC)是为解决异构数据库间的数据共享而产生的,现已成为WOSA(The Windows Open System Architecture(Windows开放系统体系结构))的主要部分和基于Windows环境的一种数据库访问接口标准ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数据存取标准,存取不同DBMS管理的数据;使应用程序直接操纵DB中的数据,免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件,甚至访问如Excel 表和ASCI I数据文件这类非数据库对象。

OTL 安装

查了半天资料,还是有点一知半解,后续明白了ODBC就是一个中转协议。原本是cpp源码集成驱动,直接用网络底层连接mysql,采用ODBC方式时,实际上应用是和ODBC先连接,然后经由ODBC转发到MYSQL上。

明白了这个途径之后,明显感受到了连接速度变慢了,但是后续我测试的时候,一次性发送了多达30M的静态sql插入语句都没有出现问题,足以在一定程度上说明了ODBC方式的可用度。

为了使用odbc方式,可以先到mysql官网下载

这里的32位,64位跟操作系统一致就行,安装完毕之后; 打开windows的控制面板,然后在右上角输入管理工具,双击打开数据源,这里如果安装64位的话,分别由32,64位的数据源选项可供选择。我这里选跟mysql版本一致的32位,双击打开后按照需求填入账号密码以及数据库信息,最后,记得把ODBC的数据源名字记下来,后面有用到。

然后去otl官网下载传说中的head-only头文件。

OTL 使用

只有头文件就能直连odbc我是不信哒,后面的编译错误很快地验证了我的想法,在ODBC的安装文件夹下有几个后缀为A,S,W的静态文件以及动态DLL文件都要放好. 而且在引用头文件时,我发现需要设置一些宏定义来自定义OTL的接口支持。

这里我重新使用了一个头文件otl.h来包含原有的头文件otlv4.h,这样的话在业务层只需要引用otl.h就行了,各处统一使用一个OTL配置。

OTL 手册

OTL的详细参考主要有以下几个链接,我觉得帮助很大。

主要用法就是查询一些宏定义的配套,以及相关用例。

OTL 附录

otl.h 的参考内容

#pragma once

#define OTL_ODBC_MYSQL#define OTL_STL#define OTL_STREAM_WITH_STD_CHAR_ARRAY_ON#define OTL_STREAM_WITH_STD_TUPLE_ON#define OTL_STREAM_NO_PRIVATE_BOOL_OPERATORS#define OTL_STREAM_NO_PRIVATE_UNSIGNED_LONG_OPERATORS#define OTL_ANSI_CPP#define OTL_BIGINT __int64#define OTL_STR_TO_BIGINT(str,n) \{ \n=_atoi64(str); \}#define OTL_BIGINT_TO_STR(n,str) \{ \_i64toa(n,str,10); \}

#if defined(__GNUC__)// GNU C++#include #define OTL_BIGINT long long#define OTL_STR_TO_BIGINT(str,n) \{ \n=strtoll(str,0,10); \

}

#define OTL_BIGINT_TO_STR(n,str) \{ \sprintf(str,"%lld",n); \

}

#endif

#define OTL_ANSI_CPP_11_ARRAY_IS_SUPPORTED#include

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值