数据库查出来的数据到JAVA中就错了?不可能!

这两天碰到一个让我欲哭无泪的问题!

框架用的springMvc+mybatis

问题描述  List<*>  list = service.select(param).

‘相同’的sql语句查出来的结果在mysql中和eclipse中不同

需求:连接了三张表,查询结果按不同的条件来排序

方案:mapper中的sql语句是这样的       select * from () order by #{condition}

            我是根据不同的条件,传过去condition

结果:查询出来的结果总不对。但是我把eclipse打印台的sql语句放到mysql中运行的结果就是对的。

mapper文件中

控制台

其中sumFbuy就是我传的condition

mysql中

然后在mysql中查询出来的结果就是对的。到了eclipse中就是错的

纠结了一天。偶然间发现问题所在,我在mysql中查询的结果是对的,但是java中得到的list就是错的。肯定就是我传的条件有问题,我就这样试了一下

激动!!!此时就是我eclipse中的错误list,我也不知道此时mysql是按什么排序的(也许根本就没排序)

问题就是这样了,因为mapper文件中配置#{condition} 此时它带到mysql中就会自动加上双引号“sumFbuy”

解决方法也很简单  将#改为$  这样   ${condition} 传到mysql就不会带双引号了 而且控制点打印出来是这样的

它会直接带在sql语句中,而不是以占位符的形式替换


希望对大家有帮助!



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值