sql传参大小写问题

我想根据实体类中传入的参数来判断是否追加查询条件,但是在Action中看的参数是大写,service中调用service中的方法就是小写。断点看的两次attrs这个Map不一样,不知道是什么意思?

QQ图片20180607162237.png

QQ图片20180607162334.png

评论区

杜福忠

2018-06-07 16:39

因为Action中看的时候是通过JFinalConfig中启动配置过
CaseInsensitiveContainerFactory的,

而service中调用service中? 是junit.Test调用吧 ?

看源码: http://www.jfinal.com/share/223

sxf2018

2018-06-07 16:47

@杜福忠 service调用service是一个Action调用service,然后这个service又调用另一个service去查数据库

JFinal

2018-06-07 17:03

使用 CaseInsensitiveContainerFactory 的时候,去掉构造方法中的参数,例如:
arp.setCaseInsensitiveContainerFactory(new CaseInsensitiveContainerFactory());

注意看上面的代码,最后的小括号里头,不能是true 也不能是false,要留空

此外, oracle 从数据库查询出来的字段 JDBC 默认会帮你转成大写,建议用生成器生成 setter getter 来解决

sxf2018

2018-06-07 17:19

@JFinal 感谢 可以了 ,但是为什么在service中会变成CaseInsensitiveContainerFactory?什么原理呢

JFinal

2018-06-07 17:24

@sxf2018 你事先设置过:
arp.setCaseInsensitiveContainerFactory(new CaseInsensitiveContainerFactory());

一般不建议用这个东东,如果你的数据库不是 oracle 的话,更不建议用

sxf2018

2018-06-07 17:39

@JFinal 大神 膜拜

热门反馈

扫码入社