2012-09-19 20 views
5

Ich weiß, diese Frage wird oft gestellt und ich bekomme immer noch Probleme, wenn ich die guide bei der Einbeziehung mehrerer Parameter in meine Select-Abfrage folgen. Hier ist meine Konfigurationsdatei:Mehrere Parameter in MyBatis?

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

Hier ist mein Java-Code:

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

Aber ich bekomme die Fehlermeldung: java.lang.ExceptionInInitializerError was bedeutet, dass ich einige Fehler in meiner Konfigurationsdatei haben, und ich kann den Grund nicht finden.

Antwort

3

Ich habe die Antwort selbst gefunden: '<' und '>' haben bestimmte Bedeutungen in xml-Dateien, also sollte das '> =' sein '& gt; = 'während die' < = '& lt sein sollte; = '.

+0

Flucht von '>' auf > ist nicht erforderlich, – StrekoZ

11

wickeln gerade Sie SQL-Anweisung in CDATA:

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