解决方案 »

  1.   

    map类型的参数,使用#keyName#来引用,keyName为键名????
      

  2.   

    map类型的参数,使用#keyName#来引用,keyName为键名????

    啊。我说的是if判断的条件,不是sql的部分。我知道sql使用 #{key}或者${key}来获取。 我说的是
    <if test="** != null">这里的**怎么获取map中的值
      

  3.   

    这是修改之后的<select id="findod" parameterType="map" resultMap="odMap">
                  select * from order_day where 1 = 1 
                  <if test="start != null and start != ''">
                    and   date >= #{start} 
                  </if>
                  <if test="end != null and end != ''">
                    and #{end} > date  
                  </if>
                  <if test="appid != null and appid != ''">
                    and  appid=${appid}
                  </if>
                  <if test="operators != null and operators != ''">
                    and operators=${operators}  
                  </if>
                  limit ${Page.startPos},${Page.pageSize};
              </select>
    就把parameterType="java.lang.Map"  改成="map"了,不过好像这个没关系然后if判断的条件直接就写map里边的key值,不管它是不是POJO类里边的,反正写KEY值就是了。不知道我理解的对不对,反正是行得通了。
      

  4.   

    MyBatis,数据库映射这一块。 <if test="end != null and end != ''">and #{end} > date   </if>参数是你方法里面传过来参数的实体解析,或者键值对的解析。parameterType是参数类型。可以是map,也可以是你的实体类(完整的包名)
      

  5.   

    但是我实体类里边没有end和start这个属性,传过来实体类(完整的包名)会报错找不到属性的吧?这个end只是map定义的key值。这样应该可以吧?
      

  6.   

    你传的值是map键值对。。就看map键值对的KEY属性,,map和实体对象都可以的。实体里面没有那些属性的,就用map
      

  7.   

    但是我实体类里边没有end和start这个属性,传过来实体类(完整的包名)会报错找不到属性的吧?这个end只是map定义的key值。这样应该可以吧?如果你操作的数据字段有对应的实体你就用实体对象做参数,如果没有就用map,MyBatis在数据库映射这一部分,的所有参数都市你传过来的对象属性(实体---实体属性)(map---map的KEY)
      

  8.   

    但是我实体类里边没有end和start这个属性,传过来实体类(完整的包名)会报错找不到属性的吧?这个end只是map定义的key值。这样应该可以吧?如果你操作的数据字段有对应的实体你就用实体对象做参数,如果没有就用map,MyBatis在数据库映射这一部分,的所有参数都市你传过来的对象属性(实体---实体属性)(map---map的KEY)
    哦~~了解了。3Q