Mybatis控制台输出的sql语句执行有结果,但是返回结果却是0行 50
我用的Oracle数据库,用Mybatis写了个分页查询的语句,发现控制台输出的查询行数为0(注意,不是null,控制台没有异常),我将控制台输出的sql复制到Navic...
我用的Oracle数据库,用Mybatis写了个分页查询的语句,发现控制台输出的查询行数为0(注意,不是null,控制台没有异常),我将控制台输出的sql复制到Navicat中执行,是有结果的。另外做实验,将sql语句中的所有动态条件写死,有可以查询出数据了,但是这不能确定是我的映射有问题,应为上述查询为0行的情况,只在部分查询条件下出现。代码看图,请大神解答~
========经过我无数次试验后发现,只要我将if标签内的#{}传值,改为${}传值,查询数量就正常。但这明显不合理嘛,会增加安全风险。网上大家都在if标签里用#{}传值呀。请大神看下,是不是我用的这个版本的Mybatis 3.2.7 有漏洞,或是版本太低,jar包见截图 展开
========经过我无数次试验后发现,只要我将if标签内的#{}传值,改为${}传值,查询数量就正常。但这明显不合理嘛,会增加安全风险。网上大家都在if标签里用#{}传值呀。请大神看下,是不是我用的这个版本的Mybatis 3.2.7 有漏洞,或是版本太低,jar包见截图 展开
展开全部
我不知道是不是这种情况,但是建议你动态查询的where那里改成1=1 and 后面再加你的那个动态查询条件。
追问
我试验了,加上1=1后还是不行,同样的现象,将if标签里的条件写死,就可以查询。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的问题解决了:如果mybatis中有IN条件传参时用$不能用#
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我遇到了一样的问题 网上找了很多 只有这个跟我的一样。。。 现在还是未解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询