为什么不写parameterType也可以运行成功

来源:5-4 揭开最后一层面纱

快乐不假

2017-04-19 09:39

 

为什么不写parameterType也可以运行成功?写别的类型可不会报错照常执行

command.xml:
  <select id="queryCommandListByPage" resultMap="CommandResult" >
      select <include refid="columns"/> from command a left join command_content b
    on a.id=b.command_id
      <where>
          <if test="command.name != null and !&quot;&quot;.equals(command.name.trim())">
            and a.name=#{command.name}
        </if>
        <if test="command.description != null and !&quot;&quot;.equals(command.description.trim())">
            and a.description like '%' #{command.description} '%'
        </if>
      </where>
      <if test="flag==1">
        group by aid
    </if>
      order by id
  </select>

  <sql  id="columns">
      a.id aid,a.name,a.description,b.content,b.id,b.command_id
  </sql>

接口:

/**
     * 拦截器实现分页
     */
    public List<command> queryCommandListByPage(Map<String,Object>parameter);

写回答 关注

1回答

  • younghu
    2017-05-01 15:20:58

    我自己测试了一下,用Mapper接口写的不用写类型是可以的,我没看过具体源码,但估计和老师说的差不多,动态代理应该知道你传入了什么参数,如果直接用原始的session.update("namespase.query") 会报如下异常!

    http://img.mukewang.com/5906e1d50001e44715910307.jpg

    慕粉3796... 回复youngh...

    你还是说没有关系 其实有关系

    2017-06-25 17:18:57

    共 2 条回复 >

通过自动回复机器人学Mybatis---加强版

进一步探索 Mybatis 的奥秘,一起揭开 Mybatis 面纱

53665 学习 · 112 问题

查看课程

相似问题