Giter VIP home page Giter VIP logo

Comments (39)

zhaitianduo avatar zhaitianduo commented on July 24, 2024 7

Grab 某team,用过 gorm 一段时间,受不了了,基于gendry 做了代码生成,非常喜欢

from gendry.

mysterytree avatar mysterytree commented on July 24, 2024 1

直接在这里评论吗

from gendry.

leeyuanzhang avatar leeyuanzhang commented on July 24, 2024 1

建议加入Join

from gendry.

Colstuwjx avatar Colstuwjx commented on July 24, 2024 1

建议可以像 Ctrip Apollo 项目 这样, 清晰明了,更容易让后来的人有信心去使用这个lib!

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024 1

请问一下 , 在scanner.Scan 的时候 , 如果是切片类型,查找不到结果为什么是是用nil返回而不是返回 ErrEmptyResult 的错误?

@JHxx1229 , 抱歉之前看漏了你的问题。当Scan一个struct,由于struct每个字段都有默认值,用户无法判断到底结果集就是 0 0 "",还是说根本没取到数据,因此必须通过ErrEmptyResult来告诉用户。但是当Scan一个slice时,没取到len就是0,这样就能够很容易地判断了。这里确实有不一致,主要考虑的点是,没取到数据是正常的,不是错误,不应该用error来表示。一般如果有error就是真的出错了,使用方直接return err即可。但是由于我上面说的,Scan struct时用户没法知道到底取没取到数据,这才加上的ErrEmptyResult 。这也导致用户即使拿到error返回,还得额外做一个判断看是否是空集合。最好的方式是Rust那样使用Option枚举值来指示结果,但是Go不支持枚举类型也就没办法了。

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024 1

where:=map[string]interface{}{
"a":1,
"b":2,
"c>":3
}

如果abc是复合索引
生成的sqlwhere可能是 a=1 and c>3 and b=2 不能控制where顺序 会导致 索引不命中的情况么

@overcls 最左匹配原则看的不是这个顺序。是否命中索引是和你where中有哪些条件有关,和where中条件的顺序无关,数据库会处理顺序的问题

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

@mysterytree 是的

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

@SammyLee666 不知道这个功能怎么用,能给个wiki吗

from gendry.

aprchen avatar aprchen commented on July 24, 2024
company project suggestion
杭州群友文化创意有限公司 书城,多媒体运营工具 已经用了半年了,使用下来体感还是不错的

from gendry.

daaaabeen avatar daaaabeen commented on July 24, 2024

这个库的语法新奇,建议一些参数的命名follow下原生sql

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

@daaaabeen 能给点具体的例子吗?

from gendry.

daaaabeen avatar daaaabeen commented on July 24, 2024

@daaaabeen 能给点具体的例子吗?

将 limit 、group by 、having 等操作放到where 里,这样设计感觉不太合理

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

@daaaabeen 严格地讲,确实是这样的。但是Gendry的目的其实就是想简化写sql,而且希望支持的仅仅是简单sql,也就是能够通过map[k][v]就能描述清楚的场景,所以把非where部分也放到了这里面。基本上目前大部分够用了,如果有不够用的场景,就用NamedQuery自己手写sql

from gendry.

QAQVictor avatar QAQVictor commented on July 24, 2024

请问可以支持 & 等位运算符吗?
例如 select * from table where id & 1;

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

请问可以支持 & 等位运算符吗?
例如 select * from table where id & 1;

@QAQVictor 不支持

from gendry.

ithinco avatar ithinco commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

Grab 某team,用过 gorm 一段时间,受不了了,基于gendry 做了代码生成,非常喜欢

哈哈,感谢!大家的满意是我们最大的动力

from gendry.

mysterytree avatar mysterytree commented on July 24, 2024

replace

求加啊 感谢兄die

from gendry.

mysterytree avatar mysterytree commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

求加啊 感谢兄die

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

求加啊 感谢兄die

已经加入排期了

from gendry.

LitoMore avatar LitoMore commented on July 24, 2024

Grab +1

from gendry.

betazk avatar betazk commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

gendry也是支持pgsql的吗?

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

gendry也是支持pgsql的吗?

@betazk 需要你把生成的sql中的placeholder做一个替换,因为mysql是?而pg是$

from gendry.

leeyongda avatar leeyongda commented on July 24, 2024

不错,支持一下,希望这个项目能持续维护下去。

company project suggestion
杭州云桔物联科技有限公司 基于gendry builder 生成sql语句 项目能持续维护下去
能否支持JOIN 语句(还是只能用NamedQuery去实现JOIN语句?)

from gendry.

JHxx1229 avatar JHxx1229 commented on July 24, 2024

请问一下 , 在scanner.Scan 的时候 , 如果是切片类型,查找不到结果为什么是是用nil返回而不是返回 ErrEmptyResult 的错误?

from gendry.

seven4x avatar seven4x commented on July 24, 2024

希望支持 PostgreSQL,现在我们需要 strings.Replace(? , $),谢谢

你们现在正在用gendry帮pg生成sql吗?单纯做个replace还好,不过如果你们已经在用pg上用gendry了,我可以支持一下设置placeholder的功能,比replace稍微提高一点点性能

gendry也是支持pgsql的吗?

@betazk 需要你把生成的sql中的placeholder做一个替换,因为mysql是?而pg是$

现在还没有支持能够设置 placeholder呢

from gendry.

willerdong avatar willerdong commented on July 24, 2024

现在貌似不支持join?

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

现在貌似不支持join?

不支持,只能用builder.NamedQuery手写。不支持join的原因是,join过于复杂,join里又可能套join,最后map就没法看了,你自己可能都看不懂自己在写啥。所以对于复杂的sql一直推荐直接手写,还直观

from gendry.

jsyzchen avatar jsyzchen commented on July 24, 2024

希望update操作也支持_limit,现在在update里面用_limit会报“sql: converting argument $3 type: unsupported type []uint, a slice of uint”错误

from gendry.

gangzhou avatar gangzhou commented on July 24, 2024

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

希望update操作也支持_limit,现在在update里面用_limit会报“sql: converting argument $3 type: unsupported type []uint, a slice of uint”错误

@jsyzchen @gangzhou 这个可以加上,今天下班回去给支持

from gendry.

caibirdme avatar caibirdme commented on July 24, 2024

@jsyzchen @gangzhou done, pls upgrade to v1.6.0

from gendry.

shawti avatar shawti commented on July 24, 2024

scanner是把一个查询结果集(rows)scan到struct,在构造查询语句阶段希望能提供一个反向功能,通常在使用的时候都通过model把数据库的表结构做好了映射,然后赋值时用这个model struct作为约定去赋值,这时候在用gendry的话就需要把strcut转为[]map[string]interface{},如果官方能提供这样的功能那会方便很多,尤其是在insert和update的时候,可以参考sqlx的NamedQuery

补充说明一下,主要是针对insert和update的data参数

from gendry.

overcls avatar overcls commented on July 24, 2024

where:=map[string]interface{}{
"a":1,
"b":2,
"c>":3
}

如果abc是复合索引
生成的sqlwhere可能是 a=1 and c>3 and b=2 不能控制where顺序 会导致 索引不命中的情况么

from gendry.

xiekeyi98 avatar xiekeyi98 commented on July 24, 2024

Grab 某team,用过 gorm 一段时间,受不了了,基于gendry 做了代码生成,非常喜欢

好奇求问 gorm 主要「受不了了」的地方在哪里,因为没有用过 orm ,看文档感觉优点也挺多的,想看看缺点在哪方面。

from gendry.

voctior avatar voctior commented on July 24, 2024

where:=map[string]interface{}{
"c":[]int{3,4}
}
如果这种场景下c的有运算符的话是不是可以默认 加一个in进去,而不是=呢?
ps:参考"github.com/Masterminds/squirrel" 这个包的 where的实现。

from gendry.

voctior avatar voctior commented on July 24, 2024

where:=map[string]interface{}{
"c":[]int{3,4}
}
如果这种场景下c的有运算符的话是不是可以默认 加一个in进去,而不是=呢?
ps:参考"github.com/Masterminds/squirrel" 这个包的 where的实现。

附带实现的mr,如果有时间可以帮忙审查下
https://github.com/didi/gendry/pull/109/files

from gendry.

twz915 avatar twz915 commented on July 24, 2024

多个or查询条件支持,
支持条件中使用函数带空格
#123

from gendry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.