我正在编写一个涉及 MySQL 数据库的应用程序,并且我希望将所有与数据库相关的操作放在一个(或多个,在未来)特定文件中。我需要将数据库连接 ID 导出到其他模块,以便它们可以使用 DB 模块的服务。
理想情况下,这将是。(在 db.h 中)
typedef ????? dbconn_t
在其他文件中
dbconn_t = db_newconnection(...);
用于 db 连接的 MySQL 类型称为 MYSQL,所以我倾向于写
typedef MYSQL *dbconn;
但要做到这一点,我需要在我自己的 db.h 中包含 mysql.h,将大量函数和其他类型导出到项目的其余部分。
想到了一些解决方案:
导出一个 int 类型并保留一个用于将 int 映射到 MYSQL 指针的表
在数据库处理代码中的每个调用中导出一个 void 指针和类型转换
两者看起来都很糟糕。有什么想法可以帮助解决这个问题吗?