当年使用 Java 编写 Web 应用的时候,用 MyBatis 查数据,那叫一个爽,轻量、灵活、自由,后来转到 Go,也用过 GORM,但总怀念 MyBatis,所以也想有这样的框架。
Github 上翻了几翻,发现也有一些,大概分为两类:
A、依然通过 XML 定义查询,甚至有 完全兼容的 Java MyBatis 的,然后通过一个库支持查询和绑定;
B、定义一个接口,在接口上写注释,通过 go:generate 生成代码
其他还有把 sql 语句写在 struct tags 里面的,都和上面两种大同小异。
想问一下:
1. Go 是否需要一个类似 MyBatis 的框架?
2. 如果需要,该设计成什么样呢,类A还是类B?
3. 是否有人愿意协作开发?
```java
@Query("select h.city as city, h.name as name, avg(r.rating) as averageRating "
- "from Hotel h left outer join h.reviews r where h.city = ?1 group by h")
Page findByCity(City city, Pageable pageable);
```
JPA 这种方式已经和 MyBatis 几乎完全一样了,原生SQL 而且支持自动绑定。
#8
更多评论
我自己写query builder, 各种开源的query builder也很多
go没那么依赖sql或者类似的数据库。
如果java更适合你的业务,还是用java比较好。
#1