2012-09-19 5 views
5

私はこの質問が何度も尋ねられることを知っています。私は選択クエリに複数のパラメータを含めるときにはguideに従うと問題が発生します。ここに私の設定ファイルは次のとおりです。MyBatisに複数のパラメータがありますか?

<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私は私の設定ファイルに多少の誤差があると私ことを意味しています理由を見つけることができません。

答えて

3

自分で答えが見つかりました: '<'と '>'はxmlファイルで特定の意味を持っていますので、 '> ='は '& gt; = 'のようになりますが、' < = 'は' &です。 = '

+0

エスケープする必要はありません – StrekoZ

11

あなたにCDATAでSQL文をラップ:>に '>' の

<![CDATA[ 
    SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end} 
]]> 
関連する問題