C++ 一文解决 数据库ODB 安装/调试/使用的问题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

引用

ODB Download (codesynthesis.com)

Installing ODB on Linux/UNIX (codesynthesis.com)

缘起

在开发过程中发现现有的软件缺乏持久层Persistence Layer即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面将数据使用者和数据实体相关联。

这导致一下几个问题

一.在具体的操作数据库的时候需要和复杂的SQL语句打交道

二.日益复杂的业务逻辑和数据逻辑耦合度比较高导致代码逻辑不清晰

三.频繁的进行如下流程

1、建立数据库连接获得 Connection 对象。
2、根据用户的输入组装查询 SQL 语句。
3、根据 SQL 语句建立 Statement 对象 或者 PreparedStatement 对象。
4、用 Connection 对象执行 SQL语句获得结果集 ResultSet 对象。
5、然后一条一条读取结果集 ResultSet 对象中的数据。
6、根据读取到的数据按特定的业务逻辑进行计算。
7、根据计算得到的结果再组装更新 SQL 语句。
8、再使用 Connection 对象执行更新 SQL 语句以更新数据库中的数据。
7、最后依次关闭各个 Statement 对象和 Connection 对象。

一.安装

按照官方提供的连接下载安装./configure->make->make install

编译libodb-mysql的时候遇到了坑

提示找不到MYSQL库

解决方案修改./configure 文件搜索libmysqlclient_paths

 编译的时候提示找不到MYSQL的头文件

解决方案 

安装libmysqlclient

apt-get install libmysqlclient

然后make的时候又遇到

查看 mysql.h

 怀疑是编译器版本的问题

需要修改odb/mysql/mysql-types.hxx

 后面编译EXAMPLE的时候又遇到缺少xlocale的问题

这个时候需要重新编译odb可执行程序编译的时候GCC版本不能太高不然编译不过这里尝试使用GCC-4.7

提示缺少头文件fatal error: expat.h: No such file or directory

apt-get install libexpat1-dev

apt-get install --reinstall libexpat1=2.1.0-7ubuntu0.16.04.5如果libexpat1版本不对

编译odb-2.4的时候

apt-get install libcutl-dev

apt-get -f install gcc-4.7-plugin-dev这个版本似乎比较特殊只有这个版本可以安装成功

二.基本介绍

这玩意的基本架构

ODB Compiler这个编译器是从gcc4.9.3版本改造出来的这里面有个坑见上

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: c++数据库