Skip to content

Latest commit

 

History

History
17 lines (13 loc) · 912 Bytes

File metadata and controls

17 lines (13 loc) · 912 Bytes
layout default
title 拼SQL

拼SQL

  • TOC {:toc}

Go 裸写 SQL 的体验非常差。ORM 不是答案。很多时候用 ORM 需要先知道 SQL 预期是怎样的,然后再来猜测怎样用 ORM 才能拼出想要的 SQL 来。所以不如直接用类似 html 模板的方案来解决拼 SQL 的效率问题吧。

  • 分库分表:需要支持表名里带区号,需要用字符串拼接出表名
  • IN查询:默认的变量替换对于 IN 查询支持很不方便。有多少个成员就要写多少个?
  • 命名参数:默认的sql库不支持命名参数。sqlx支持,所以sqlx的写法直接移植过来了。
  • 快速拼SQL:更新多个字段,或者插入新记录的时候需要手拼SQL。sqlxx 直接帮你拼了
  • 轻量级:直接用 database/sql 的 driver,连 database/sql 这一层都没有走。所有的对象绑定,类型转换,map创建的开销都被省去了。