golang sql mapper framework

eatmoreapple · · 2146 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Juice 简介 ============================== juice 是一个基于 golang 的 sql mapper 框架,它的目标是提供一个简单易用的 sql mapper 框架,让开发者可以更专注于业务逻辑的开发。 如果你是一个 golang 开发者,或者你正在寻找一个简单易用的 sql mapper 框架,那么 juice 可能是你的不二之选。 项目主页 ------------------------------ [http://github.com/eatmoreapple/juice](http://github.com/eatmoreapple/juice) 特性 ------------------------------ - 轻量级,高性能,无第三方依赖 - 简单易用,容易扩展 - 动态 sql 语句 - 支持多数据源 - 泛型结果集映射 - 中间件 - 自定义表达式 - 自定义函数 - 热更新 安装 ------------------------------ **版本要求** - go 1.18+ ```bash go get -u github.com/eatmoreapple/juice ``` 快速开始 编写sql mapper配置文件 ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <environments default="prod"> <environment id="prod"> <dataSource>root:qwe123@tcp(localhost:3306)/database</dataSource> <driver>mysql</driver> </environment> </environments> <mappers> <mapper namespace="main"> <select id="HelloWorld"> select "hello world" as message </select> </mapper> </mappers> </configuration> ``` 注意:dataSource 的格式跟用 sql.Open() 函数的格式相同。 编写代码 ```go package main import ( "fmt" "github.com/eatmoreapple/juice" _ "github.com/go-sql-driver/mysql" ) func HelloWorld() {} func main() { cfg, err := juice.NewXMLConfiguration("config.xml") if err != nil { fmt.Println(err) return } engine, err := juice.DefaultEngine(cfg) if err != nil { fmt.Println(err) return } message, err := juice.NewGenericManager[string](engine).Object(HelloWorld).Query(nil) if err != nil { fmt.Println(err) return } fmt.Println(message) } ``` 注意:虽然 juice 不依赖第三方库,但是它需要依赖数据库驱动,所以在使用 juice 之前,你需要先安装数据库驱动,比如要使用mysql, 那么你需要先安装 github.com/go-sql-driver/mysql 如果运行报错,那么可能是因为你的数据库没有启动,或者你的数据库配置有误,检查一下数据库配置是否正确。 运行代码 ```bash go run main.go ``` 输出结果 ```shell [juice] 2022/11/05 19:56:49 [main.HelloWorld] select "hello world" as message [] 5.3138ms hello world ``` **文档地址:https://juice-doc.readthedocs.io/en/latest/index.html**

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2146 次点击  ∙  3 赞  
加入收藏 微博
1 回复  |  直到 2023-06-16 14:35:01
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传