5

我知道这个问题被问了很多次,当我按照指南在我的选择查询中包含多个参数时,我仍然会遇到问题。这是我的配置文件:

<select id="selectByDate" parameterType="map" resultMap="campaignStats">
    SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end}
</select>

这是我的Java代码:

public List<DpCampaignStats> selectByDate(Date start, Date end){
    SqlSession session = sqlSessionFactory.openSession();
    try {
        Map<String, Date> map = new HashMap<String, Date>();
        map.put("start", start);
        map.put("end", end);
        List<DpCampaignStats> list = session.selectList("DpCampaignStats.selectByDate", map);
        return list;
    } finally {
        session.close();
    }
}

但是我收到错误:java.lang.ExceptionInInitializerError,这意味着我的配置文件中有一些错误,我找不到原因。

4

2 回答 2

11

只需将您的 SQL 语句包装在 CDATA 中:

<![CDATA[
   SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end}
]]>
于 2012-09-20T15:23:45.197 回答
3

我自己找到了答案:'<'和'>'在xml文件中有一定的含义,所以'>='应该是' > =' 而 '<=' 应该是 ' < ='。

于 2012-09-20T05:38:24.863 回答