{"repo":"orca-zhang/borm","free":true,"listed":false,"github":"https://github.com/orca-zhang/borm","clone":"git clone https://github.com/orca-zhang/borm.git","description":"【🔥今日热门】🏎️ 更好的ORM库 (Better ORM library that is simple, fast and self-mockable for Go)","language":"Go","stars":118,"topics":["golang","orm","reflect2","sql-like","fast","simple","self-mockable","crud","gorm","xorm"],"license":"MIT","category":"databases-storage","readme_excerpt":"borm 🏎️ 更好的ORM库 (Better ORM library that is simple, fast and self-mockable for Go) English 中文 🚀 最新功能 ⚡ Reuse功能默认开启 - 性能革命性提升 - 2-14倍性能提升 ：缓存命中时性能提升2倍，并发场景提升14倍 - 零分配设计 ：缓存命中时完全无内存分配 - 智能缓存 ：基于调用位置自动缓存SQL和字段映射 - 零配置 ：默认开启，无需任何额外配置 🗺️ Map类型支持 - 无需定义struct ：直接使用map操作数据库 - 类型安全 ：支持所有基本类型和复杂类型 - 完整CRUD ：支持Insert、Update、Select、Delete操作 - Select到Map ：支持查询结果直接存储到map，灵活处理动态字段 - V类型别名 ： V 是 map[string]interface{} 的别名，使用更简洁 - 通用map支持 ：支持任意 map[string]interface{} 类型 - Fields过滤 ：支持指定插入/更新的字段 - U类型支持 ：支持原始SQL表达式（如 age+1 ） - InsertIgnore/ReplaceInto ：支持所有Map操作变体 🏗️ Embedded Struct支持 - 自动处理组合对象 ：无需手动处理嵌套结构 - 字段忽略 ：支持 borm:\"-\" 标签忽略字段 - 递归解析 ：自动处理多层嵌套结构 ⏰ 更快更准确的时间解析 - 5.1倍性能提升 ：智能格式检测，单次解析 - 100%内存优化 ：零分配设计，减少内存使用 - 多格式支持 ：标准格式、时区格式、纳秒格式、纯日期格式 - 空值处理 ：自动处理空字符串和NULL值 目标 - 易用：SQL-Like（一把梭：One-Line-CRUD） - KISS：保持小而美（不做大而全） - 通用：支持struct，map，pb和基本类型 - 可测：支持自mock（因为参数作返回值，大部分mock框架不支持） - 非测试向的library不是好library - As-Is：尽可能不作隐藏设定，防止误用 - 解决核心痛点： - 手撸SQL难免有错，组装数据太花时间 - time.Time无法直接读写的问题 - SQL函数结果无法直接Scan - db操作无法方便的Mock - QueryRow的sql.ErrNoRows问题 - 直接替换系统自带Scanner，完整接管数据读取的类型转换 - 核心原则： - 别像使用其他orm那样把一个表映射到一个model - （在borm里可以用Fields过滤器做到） - 尽量保持简单把一个操作映射一个model吧！ - 其他优点： - 更自然的where条件（仅在需要加括号时添加，对比gorm） - In操作接受各种类型slice - 从其他orm库迁移无需修改历史代码，无侵入性修改 特性矩阵 下面是和一些主流orm库的对比（请不吝开issue勘误） 库 borm (me) gorm xorm 备注 易用性 无需指定类型 :white check mark: :x: :x: borm在tag中无需低频的DDL 无需指定model :white check mark: :x: :x: gorm/xorm改操作需提供“模版” 无需指定主键 :white check mark: :x: :x: gorm/xorm易误操作，如删/改全表 学习成本低 :white check mark: :x","default_branch":null,"files":null,"tree":[],"storefront":"/r/orca-zhang","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/orca-zhang/borm/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}