2012-09-19 17 views
5

Bu soruyu birçok kez sordum ve seçtiğim sorguda birden çok parametre eklerken guide'u izlediğimde sorun yaşıyorum. İşte MyBatis'te birden çok parametre var mı?

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

benim Java kodu: İşte benim yapılandırma dosyasıdır

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(); 
    } 
} 

Ama hatayı alıyorum: java.lang.ExceptionInInitializerError benim yapılandırma dosyasında ve ben bazı hatalar var demektir nedeni bulamıyor.

cevap

3

Yanıtı kendim buldum: '<' ve '>' xml dosyalarında belirli anlamlara sahiptir, bu nedenle '> =' '& gt olmalıdır; = '< =' iken '& lt; = '.

+0

> için '>' içinde kaçan gerekli değildir – StrekoZ

11

Sadece CDATA'da size SQL deyimi sarın:

<![CDATA[ 
    SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end} 
]]> 
İlgili konular