Sql 管理功能 中的 for语句 取值 问题

发布于 2021-12-06 05:55:57 字数 1142 浏览 782 评论 9

@JFinal  波总您好 再次打扰您了

您文档中的这个例子  我用的时候

JMap condMap = JMap.create("1st","第一").set("2nd","第二").set("3th","第三").set("statusok", "ok");

Db.getSqlPara("find",condMap)  只能取到  select * from table where status = ok

其他值取不到。

就能取到其他值了,可是 参数是对象,

这个写还报错,不知道怎么写了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

绝影如岚 2021-12-06 11:43:30

先看一下 SqlPara 对象中的是什么数据,然后单步调试跟踪到 Db.find(sqlPara) 中去,看数据有啥变化

月牙弯弯 2021-12-06 11:43:29

回复
@JFinal : debug了一下 都正常, 我又把limit去掉了,能取到数据了,然后 把limit加回去,也能取到数据,现在是正常了 不知道为什么。

千纸鹤带着心事 2021-12-06 11:43:23

回复
@frankbak : 可能是 eclipse 的 bug,也可能是当时 class 文件没有被正常编译

高跟鞋的旋律 2021-12-06 11:43:18

回复
@JFinal : 波总神威 一个意念就帮我把问题解决了 感谢波总。

苍暮颜 2021-12-06 11:43:13

引用来自“JFinal”的评论

注意两点就好:一个是表达式中永远不要出现 #号符,直接取变量就好,例如#(n.key)。

第二点是 #p 指令目前只支持#p(obj) 而不支持 #p(obj.field),jfinal 3.1 将支持后面这种形式,目前可以通过一个 #set(temp = obj.field) 先将值赋给一个中间变量,然后再通过 #p(temp) 来使用

2021-12-06 11:38:16

#p 指令在功能上是一直支持#p(obj.field) 的,只不过在对参数类型进行判断时禁止了 obj.field 的形式,下个版本会去除这个禁止规则,立即就可以支持,对 map 进行迭代时使用 #p 指令是极极有用的

尐偏执 2021-12-06 11:30:23

此外,sql 管理功能的用法除了那三个专用指令以外,所有 jfinal template engine 的用法全部支持,所以先看一下jfinal手册中的 template engine 这一章是极有帮助的

命硬 2021-12-06 11:18:05

@JFinal   谢谢波总

筱果果 2021-12-06 10:02:01

注意两点就好:一个是表达式中永远不要出现 #号符,直接取变量就好,例如#(n.key)。

第二点是 #p 指令目前只支持#p(obj) 而不支持 #p(obj.field),jfinal 3.1 将支持后面这种形式,目前可以通过一个 #set(temp = obj.field) 先将值赋给一个中间变量,然后再通过 #p(temp) 来使用

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文