SuperAPI AI 工具集

golang-gin-database

数据与分析

查看项目

更新于 10-15 22:12

技能介绍

用途:为 Go Gin API 接入 PostgreSQL,采用仓储模式(接口 + 具体实现),使数据库逻辑不进入 handler 与 service,并支持在 GORM 与 sqlx 之间切换而不改动业务逻辑。

主要能力:定义仓储接口(领域层不导入 gorm.io/gorm 或 jmoiron/sqlx,服务依赖接口);GORM 与 sqlx 查询写法;连接池配置(MaxOpenConns=25、MaxIdleConns=5、ConnMaxLifetime=5m);启动时 ConnectWithRetry 指数退避;事务通过 context 传递 *gorm.DB,仓储方法调用 txFromCtx(ctx);游标/键集分页;golang-migrate 迁移;main.go 中 repo → service → handler 依赖注入;Redis 缓存与限流等参考模式。

使用方式:从环境变量读取 DATABASE_URL,不硬编码凭据。开发用 sslmode=disable,生产用 sslmode=verify-full 并配 sslrootcert。示例 DSN:host=localhost user=app password=secret dbname=myapp sslmode=disable。GORM 适合 CRUD 密集与快速搭建,sqlx 适合复杂查询与完全 SQL 控制;迁移推荐 golang-migrate,AutoMigrate 仅限开发。

限制与注意:所有 db.Get、db.Select、db.Exec、db.QueryRow().Scan() 必须检查错误;LIKE/ILIKE 需转义 %、_、\;JOIN 查询使用显式表别名;ORDER BY 字段须白名单校验;大表优先游标分页而非 OFFSET。本技能不涉及认证、API 路由与处理器、部署、测试,分别见 golang-gin-auth、golang-gin-api、golang-gin-deploy、golang-gin-testing。具体版本与命令细节暂未提供。