一、起因
懒省事想用 sql 写个有连表操作的分页查询语句,看到 xorm 中 sql 要和代码紧密纠缠在一起就不爽,所有就想用 xorm 中的 session.SQL(sql).Limit(size, offset).FindAndCount() 方法解决。不曾想。。。
sql: expected 15 destination arguments in Scan, not 1
???
二、查源码
1、SQL()
这里是直接将 sql 语句赋值给 RawSQL 了
2、FindAndCount()
FindAndCount() 方法调用的 Find() 方法没问题,直接用的 RawSQL 查询,但是后续调用的 Count() 方法也会用 RawSQL 查询,就会有问题。而平时用 Where() 等方法时,Find() 和 Count() 都是生成 SQL 语句。
三、后续
再也不想用 go 写后端了,感觉 go 更适合写中间件啥的,后端来讲,java 的异常处理和 mybatis 将 SQL 从代码里抽离,感觉都要比 go方便且可读性会更好。希望能有 go 的大神带带萌新