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