邪门了,条件参数拼接不上还是拼接有问题啊!

来源:4-2 动态 SQL 拼接(下)

小白之英俊潇洒

2015-03-28 14:03

 SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM MESSAGE WHERE 1=1 and COMMAND=#{command}

我都直接这么拼都查不出来结果,日志打印如下

 ==>  Preparing: SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM MESSAGE WHERE 1=1 and COMMAND=? 

==> Parameters: 查看(String)

<==      Total: 0

也不知道具体执行的语句参数加进去没有,还是加的有问题(看不见啊我擦!),首先说明数据库是没问题的,不加条件是能全部查询出来的。

写回答 关注

5回答

  • 源生活
    2015-03-28 22:29:04
    已采纳

    你确定一下数据库的编码与设计出来的表的编码是不是与JAVA这边的编码保持一致的,关于这种情况参照一下 《6-2常见问题解析》中关于乱码的说明。

    小白之英俊潇...

    非常感谢!老师,终于解决了

    2015-03-29 10:57:46

    共 1 条回复 >

  • 慕奶姨
    2015-03-30 13:42:56

    顶!自己解决了问题了。

  • 小白之英俊潇洒
    2015-03-29 11:02:04

    之前纠结的就是所有地方都是UTF8啊,一般乱码在debug时候能看出来,这个看不出来,就差URL上追加编码,结果还就解决了!有同样问题的同学可以试试URL后追加 ?useUnicode=true&amp;characterEncoding=utf8


  • 小白之英俊潇洒
    2015-03-28 14:32:13

    debug跟,messageList=sqlSession.selectList("Message.queryMessageList",msg);  msg中的参数不是乱码,如果是乱的话也是在xml中表达式传参#{command}时候乱掉的!

    求老师解答!!!!!!



  • 小白之英俊潇洒
    2015-03-28 14:24:48

    好吧!自问自答,用了半天排除法,最后就直接【WHERE 1=1 and COMMAND='查看'】这样都不行,顿时觉得是乱码问题,在表里加了一条英文数据 瞬间#{command}和<if ....></if>什么的都好用了,我擦!看不到具体执行什么吊样,真蛋疼,可乱码是什么原因呢?mac系统,可列表全部查询出来内容不乱啊!!日志参数都没乱呢!求解释!!!!!

通过自动回复机器人学Mybatis---基础版

微信公众号自动回复功能学习Mybatis,基础教程加案例实战方式学习

107412 学习 · 786 问题

查看课程

相似问题