如表和t_order ,字段submit_time,在sqlMap中怎么写?
谢谢了

解决方案 »

  1.   

    ...select * from t_order where submit_time> startTime and submit_time < end_time...select * from t_order where submit_time between start_time and end_time
      

  2.   

    <select id="selectOrderByDate" resultMap="orderResult" parameterClass="??">
    select * from forum where <![CDATA[ submit_time>= #startDate# and submit_time <= #endDate#]]>
    </select>
    就是像这些属性parameterClass写什么?
      

  3.   

    把startDate和endDate写成一个类,如下所示:package test;
    public class DefineDate{    private String startDate;
        private String endDate;
        public void setStartDate(String startDate){
           this.startDate = startDate; 
        }
        public String getStartDate(){
           return startDate; 
        }    public void setEndDate(String endDate){
            this.endDate = endDate;
        }
        public String getEndDate(){
            return endDate;
        }
    }然后的sqlMap里面的parameterClass就是这个类,如下所示:<select id="selectOrderByDate" resultMap="orderResult" parameterClass="test.DefineDate">
    select * from forum where  <![CDATA[ submit_time>= #startDate# and submit_time  <= #endDate#]]>
    </select>
      

  4.   

    可以用map封装你的参数,比如:<select id="select0" resultClass="user" parameterClass="java.util.HashMap">    
    select * from user where ID = #id#
    </select> 
    Map参数 
    map.put("id", id);
    User usr = (User) sqlMapper.queryForObject("select0", map); 
      

  5.   


    用了也不行,按原理来说都要转成key-value的吧.
      

  6.   


    select * from t_order where submit_time between start_time and end_time传二个参数进去啊,开始时间和结束时间主要是怎么传的问题啊?怎么传参数都不会吗?
      

  7.   

    一开始用parameterClass方式,符合条件的记录查不到,不知道是哪里有问题,其他的查询(all,like )都有结果.
      

  8.   

    你日期的格式对吗?必须是同类型的才可以呀。如果你数据库是yyyyMMdd的,你传的参数类型
    也应该是yyyyMMdd的,如果用的是oracle可以用TO_DATE转化一下,你查不出就是因为没有满足
    条件。
      

  9.   

    parameterClass可以显示声明,比如xxx.aaa.Domain,在里面
    <isNotEmpty property="startDate" prepend="and">
    submit_time>= #startDate#
    </isNotEmpty>
    <isNotEmpty property="endDate" prepend="and">
    <![CDATA[
    submit_time<= #endDate#
    ]]>
    </isNotEmpty>也可以不写,不写的话性能会降低,因为如果ibatis事先知道这个类的话,会进行优化;不写的话,也可以以Map作为参数key是endDate,value是相应的值如果是sqlserver或者mysql的话,startDate的值可以用字符串,不必用date类型
      

  10.   

    如果楼主查询不正确,那么可以看一下log4j的日志,找到打印出来的sql,以及下面对应着的参数列表,到数据库工具中执行一下
      

  11.   

    看看你生成出的sql语句,如果你的submit_time字段是date类型的肯定没结果,需要手动处理一下传的参数 to_date(***,****)
      

  12.   


    OK了,必须为String,虽然字段是date类型的,开始我写成Date类型;
    Map<?,?>方式,两个问号都为String的,或data都不行,这种方式可行吗?