2012-09-19 26 views
5

So che questa domanda viene posta molte volte e ho ancora problemi quando seguo lo guide quando includo più parametri nella mia query di selezione. Ecco il mio file di configurazione:Parametri multipli in MyBatis?

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

Ecco il mio codice 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(); 
    } 
} 

ma ho l'errore: java.lang.ExceptionInInitializerError il che significa che ho alcuni errori nel mio file di configurazione e io non riesco a trovare la ragione.

risposta

3

ho trovato la risposta da solo: '<' e '>' hanno certi significati in file XML, in modo che il '> =' dovrebbe essere '& gt; = 'mentre' < = 'dovrebbe essere' & lt; = '.

+0

fuga di '>' per > non è necessario – StrekoZ

11

Basta avvolgere istruzione SQL in CDATA:

<![CDATA[ 
    SELECT * FROM CampaignStats WHERE statsDate >= #{start} AND statsDate <= #{end} 
]]> 
Problemi correlati