包阅导读总结
1.
关键词:Golang、ORM、Bun、数据库操作、开源项目
2.
总结:本文介绍了一个名为 Bun 的 GitHub 开源项目,它是 SQL-first 的 Golang ORM,支持多种数据库,具有多种特点和功能,能简化数据库操作,提高开发效率,由知名公司支持且被多个项目采用,提供了项目地址。
3.
主要内容:
– SQL-first 的 Golang ORM 项目 Bun
– 背景:Golang 数据库操作繁琐,Bun 应运而生
– 特点:支持多种操作、功能丰富
– 使用方法:通过 `go get` 安装,示例展示复杂查询和结果映射
– 项目推介:由著名公司支持,被知名项目采用
– 活跃程度:Star 趋势图展示
– 开源地址:https://github.com/uptrace/bun
思维导图:
文章地址:https://mp.weixin.qq.com/s/yRhbIJN69PHwsSLyOk4PWQ
文章来源:mp.weixin.qq.com
作者:精选君
发布时间:2024/7/2 0:49
语言:中文
总字数:810字
预计阅读时间:4分钟
评分:90分
标签:Golang,ORM,SQL-first,数据库,开源项目
以下为原文内容
本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com
大家好,又见面了,我是 GitHub 精选君!
背景介绍
在当今的软件开发过程中,数据处理一直是一个核心环节,尤其是与数据库的交互。Golang 作为一种高效、静态类型的编程语言,在云原生、微服务等领域深受欢迎。然而,直接使用 Golang 进行数据库操作往往涉及繁琐的代码编写,包括构建 SQL 查询、结果的映射等,增加了开发复杂性和出错几率。
今天要给大家推荐一个 GitHub 开源项目 bun,该项目在 GitHub 有超过 3.4k Star。
一句话介绍该项目:SQL-first Golang ORM

项目介绍
Bun是一个 SQL-first 的 Golang ORM(对象关系映射),支持 PostgreSQL、MySQL(包括 MariaDB)、MSSQL 和 SQLite。它提供了 ORM 类似的体验,同时又不失去 SQL 的灵活性。Bun主要特点包括支持结构体、映射、标量及其切片的操作;批量插入、更新和删除;数据迁移、软删除等功能。这些特性使得Bun成为 Golang 开发者处理数据库操作的强有力工具。

如何使用
首先需要通过go get
命令安装:
gogetgithub.com/uptrace/bun
接着,可以编写如下代码来执行复杂查询并映射结果:
db:=bun.NewDB(...)
regionalSales:=db.NewSelect().
ColumnExpr("region").
ColumnExpr("SUM(amount)AStotal_sales").
TableExpr("orders").
GroupExpr("region")
varitems[]map[string]interface{}
err:=db.NewSelect().
With("regional_sales",regionalSales).
ColumnExpr("region").
ColumnExpr("product").
ColumnExpr("SUM(quantity)ASproduct_units").
TableExpr("orders").
GroupExpr("region").
GroupExpr("product").
Scan(ctx,&items)
通过上述示例,可以看到Bun如何通过优雅的代码设计来简化复杂查询和结果映射过程,显著提高开发效率。
项目推介
Bun并不孤立于开发生态,它由著名的开源公司 uptrace 提供支持,同时也被多个知名项目采用,例如:在线协作工具 scrumlr.io、分布式追踪和指标平台 uptrace、Kubernetes 访问管理器 paralus 等。这不仅证明了Bun的实用性,也表示它拥有一个活跃的开发生态和社区支持。

以下是该项目 Star 趋势图(代表项目的活跃程度):
更多项目详情请查看如下链接。
开源项目地址:https://github.com/uptrace/bun
开源项目作者:uptrace
关注我们,一起探索有意思的开源项目。
点击如下卡片后台回复:加群,与技术极客们一起交流人工智能、开源项目,一起成长。如果你正在寻求开源项目推广、DevOps、AIGC 大模型、软件开发等领域的付费服务,可参考推文了解详情。
读者专属插件:github.com/ZhuPeng/github_linker