ORM:ODB安装使用过程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 1.下载odb-2.4.0-i686-windows,是cpp和sql文件生成工具,已经编译好了,如果下odb-2.4.0估计是未编译好的这个项目;   2.将...\odb-2.4.0-i686-windows\bin添加到环境变量Path,以便能使用odb.

1.下载odb-2.4.0-i686-windows,是cpp和sql文件生成工具,已经编译好了,如果下odb-2.4.0估计是未编译好的这个项目;

 
2.将...\odb-2.4.0-i686-windows\bin添加到环境变量Path,以便能使用odb.exe进行命令生成文件;
 
3.cmd进入到HelloWorld的person.hxx的同目录,输入odb -d mysql --generate-query person.hxx

生成person-odb.cxx、person-odb.hxx、person-odb.ixx三个文件;

 

3.下载libodb-2.4.0,这个是普通的lib,编译;


4.下载libodb-sqlite-2.4.0,这个是用sqlite数据库用到的,如果需要用mysql数据库,就得下载libodb-mysql-2.4.0版本的,特别注意,在libodb-sqlite-2.4.0项目有一个 LIBODB_SQLITE_DYNAMIC_LIB预处理宏,如果在编译sqlite.lib时没有添加 SQLITE_ENABLE_UNLOCK_NOTIFY预处理宏,编译libodb-sqlite-2.4.0就会报错,所找不到connection函数的定义,我是直接下载别人编译好的sqlite.lib,就出现了这问题,估计是没有添加这个预处理宏了,那怎么办,那就将libodb-sqlite-2.4.0项目的LIBODB_SQLITE_DYNAMIC_LIB预处理宏定义去掉,就可以成功编译通过。
 
5.odb -d mysql --generate-query --generate-schema person.hxx(手册里用这句生成了person.sql,而换成sqlite的话又没有东西生成,估计sqlite不需要吧)。
 
6.在官网提供的hello例子项目里添加:
...........\odb2.4.0\libodb-2.4.0;
............\odb2.4.0\libodb-sqlite-2.4.0;
.............\sqlite3;
头文件导入目录,其中省略号为你的文件夹对应的路径。
lib目录也是需要的:
..............\odb2.4.0\libodb-2.4.0\lib;
...............\odb2.4.0\libodb-sqlite-2.4.0\lib
同事也得添加依赖:
odb-sqlite-d.lib
odb-d.lib
 
之后就可以运行了!
 
ODB Compiler为ODB生成数据库支持代码文件工具,下windows版本即可;(必须)
Common Runtime Libraries 核心lib库;(必须)
Database Runtime Libraries 数据库lib库;(必须,下自己需要用到的数据库对应的版本即可)
其他的随意。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL Java
解决在ideal中导入MySql包,文件夹里面下载的有。但在ideal中无法引用的问题
解决在ideal中导入MySql包,文件夹里面下载的有。但在ideal中无法引用的问题
68 0
|
2月前
|
关系型数据库 MySQL 数据库
ORM对mysql数据库中数据进行操作报错解决
ORM对mysql数据库中数据进行操作报错解决
79 2
|
安全 Go 数据库
Navicat-Cracker NavicatCrackerDlg.cpp:332 -3All patch solutions are 解决Navicat 162版本注册问题的方法与分析【详细步骤】
Navicat-Cracker NavicatCrackerDlg.cpp:332 -3All patch solutions are 解决Navicat 162版本注册问题的方法与分析【详细步骤】
706 0
|
6月前
|
SQL 数据可视化 Oracle
这篇文章教会你:从 SQL Server 移植到 DM(上)
这篇文章教会你:从 SQL Server 移植到 DM(上)
156 8
|
Oracle 关系型数据库 数据库连接
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
1304 0
Navicat 数据库连接工具连接oracle数据库提示cannot create oci handles问题解决方法
【问题记录】启动 Navicat 的过程中,遇到:Missing required library sqlite.dll,998
【问题记录】启动 Navicat 的过程中,遇到:Missing required library sqlite.dll,998
【问题记录】启动 Navicat 的过程中,遇到:Missing required library sqlite.dll,998
|
关系型数据库 MySQL 数据库连接
Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试
mysql驱动版本msvc2015x32版本调好, mysql的mingw32版本的驱动上一个版本编译并测试好,有些三方库最低支持vs2017,所以只能使用msvc2017x64,基于Qt5.9.3,于是本篇编译mysql驱动的msvc2017x64版本,满足当前的特定需求,这次过程有点费劲,可能是Qt的版本低于Qt5.12,继续无保留分享出来。   本篇主要描述Qt5.9.3 msvc2017x64 + mysql8.0.16的驱动编译过程。
|
SQL 关系型数据库 MySQL
C++ ORM ODB入门
1.ORM ORM, Object Relational Mapping, 对象关系映射,用来将基于对象的数据结构映射到SQL的数据结构中。即将基于对象的数据映射到关系表中的字段,然后我们可以通过对象提供的接口来操作数据库,而无需写sql语句来操作数据库。
6186 0
|
关系型数据库 MySQL OLTP
使用pt-archiver工具进行MySQL数据库迁移
pt-archiver是Percona-Toolkit工具集中的一个组件,可以用于对MySQL表数据进行归档和清除。
769 0
使用pt-archiver工具进行MySQL数据库迁移
|
数据库
tortoise-orm的迁移工具aerich
tortoise-orm的迁移工具aerich