加入mybatis操作后输入查询条件查询不出结果,之前不使用可以根据条件查询出结果

来源:4-3 应用 log4j 调试动态 SQL

董五

2017-03-31 17:57

我把查询条件限定为

message.setCommand("查看");
messageList = sqlSession.selectList("Message.queryMessageList",message);

通过log4j打印的日志信息是

[DEBUG] - [17:49:47.495]==>  Preparing: SELECT idmessage,COMMAND,DESCRIPTION,CONTENT from MESSAGE WHERE COMMAND=?  | (BaseJdbcLogger^debug:181)
[DEBUG] - [17:49:47.522]==> Parameters: 查看(String) | (BaseJdbcLogger^debug:181)
[DEBUG] - [17:49:47.535]<==      Total: 0 | (BaseJdbcLogger^debug:181)

然后mybatis的数据操作配置是

<select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult">
    SELECT  idmessage,COMMAND,DESCRIPTION,CONTENT from MESSAGE
    <where>
        <if test="command !=null and !&quot;&quot;.equals(command.trim())"> and COMMAND=#{command,jdbcType=VARCHAR}</if>
        <if test="description !=null and !&quot;&quot;.equals(description.trim())"> and DESCRIPTION like '%'#{description,jdbcType=VARCHAR}'%'</if>
    </where>
</select>

可以从log4j打印的结果看出没有查询出信息,这是怎么回事呢?

如果页面上不使用查询条件(command="查看" or description="精彩"),可以获得六条记录……

写回答 关注

4回答

  • 安安之夜
    2017-06-29 14:17:04

    我的也出现同样的问题,用jdbc的时候条件查询不可以,改为mybatis时 也是条件查询出不来,列表可以查询出来~!!!

    董五

    我是在数据库链接字段中指定了编码方式,见第一条回答

    2017-07-07 14:45:07

    共 1 条回复 >

  • 亚努人
    2017-04-05 18:40:45

    表格字段的大小写问题,我后来把表的字段改成小写的,条件查询就有结果了。

  • 亚努人
    2017-04-05 18:21:23

    同问,有解决方法吗

  • 董五
    2017-03-31 18:04:36

    <property name="url" value="jdbc:mysql://127.0.0.1:3306/micro_message?useUnicode=true&amp;characterEncoding=utf-8"/>

    mybatis 数据链接配置文件如上修改,指定编码集……

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

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

107413 学习 · 831 问题

查看课程

相似问题