MyBatis中有多个参数?

jer*_*jtu 5 java mybatis

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

<select id="selectByDate" parameterType="map" resultMap="campaignStats">
    SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end}
</select>
Run Code Online (Sandbox Code Playgroud)

这是我的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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

小智 11

只需在CDATA中包装SQL语句:

<![CDATA[
   SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end}
]]>
Run Code Online (Sandbox Code Playgroud)


jer*_*jtu 3

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