引用:
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版本改造出来的,这里面有个坑,见上