尝试用golang 1.18泛型实现orm

2022-12-14 17:38 点击:116 编辑:邮轮网

这几天golang社区对泛型的讨论非常多的,一片热火朝天的景象。对我们广大gopher来说总归是好事。

泛型很有可能会颠覆我们之前的很多设计,带着这种疑问和冲动,我准备尝试用golang泛型实现几个orm的常见功能。

本文并没完全实现通用的orm,只是探讨其实现的一种方式提供各位读者做借鉴。

虽然golang有了泛型,但是目前在标准库sql底层还没有改造,目前还有很多地方需要用到reflect。

调用方式

这个部分跟传统的orm使用上没有太大区别,没办法不使用反射的情况下,泛型的方式可能变得有点繁琐。

调用方式

和创建table类似,写入数据好像比没有之前的orm有优势。

读取数据是非常高频的操作,所以我们稍作封装。

调用方式

稍微比原先的orm方式有了多一点想象空间,比如 在[T any]做更明确的约束,比如要求实现Filter定制方法。

鉴于本人能力还认证有限,目前还没有发现泛型对orm剧烈的改进和突破的可能。未来如果go对底层sql做出改动,或者实现诸如Rust那种Enum方式,可能会带来更多的惊喜。

已报关放关,但被船公司加锁上不了船怎么办?由什么原因造成的?

可能海关缉私局查扣、船公司甩箱等

建议问问报关员、码头和船公司

顶一下
(0)
0%
踩一下
(0)
0%
下一篇:先进的渔船动力(渔船动力装置)
上一篇:54米尾滑道拖网渔船(25米拖网渔船款式图片)