0 0
Read Time:40 Second

Persistence Layer api

  • 使得微服务在读、写不同的数据库; 如: MySql, MongoDB, SqlLite, PostgreSQL; 都有一统一的接口。
  • 各 SQL Server; 如: MySql, SqlLite, PostgreSQL; 接口实现的集中化;避免重复相同或类似的代码实现。

微服务在读、写不同的数据库;如: MySql, MongoDB, SqlLite, PostgreSQL; 都有一统一的接口。

请先参考 5/6 : type SQLHandler struct 实现type OrderDBHandler interface。

请先参考 3/6: type MySQLHandler struct 包含了 *SQLHandler。所以, 当是使用 MySQL 时, 就可回传 &MySQLHandler。

也就是说, 因为, type SQLHandler struct 实现了 type OrderDBHandler interface。所以, 当工厂 func GetDatabaseHandler 的回传是 type OrderDBHandler interface 时, 只要是有包含 *SQLHandler 的 DB Handler, 都可以回传其 DB Handler。

type SQLHandler struct 实现了 type OrderDBHandler interface

所以, 只要是有包含 *SQLHandler 的 DB Handler; 如:   type MySQLHandler struct, 就都可调用 type SQLHandler struct 的实现。

handler.QueryRow(fmt.Sprintf(“select * from Orders where orders = ‘%s‘”, orderno));  利用 fmt.Sprintf 处理各数据库在Query 命令上的差别。如: ? mysql or sqlite 需要 ?, PostgreSQL 需要 $1。
各SQL Server; 如: MySql, SqlLite, PostgreSQL; 接口实现的集中化; 避免重复相同或类似的代码实现。

About Post Author

方俊贤; Ken Fang

专利号: 201910652769.4; 一种深度学习的算法, 预测微服务持续发布、持续部署后对产品整体质量的影响, 获得国家知识财产局专利; 符合专利法实施细则第 44 条的规定。
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据