Ich habe gesehen, Links auf die Lösung, aber am wichtigsten ist How to use Annotations with iBatis (myBatis) for an IN query? , aber auch dies bietet keine Lösung für Oracle-Treiber.Wie IN-Klausel mit Mybatis Annotation innerhalb SQL-Provider
public String getEmployees(Map<String, Object> params){
//Value hold by params params={empId={123,345,667,888}}
StringBuilder sql=new StringBuilder();
sql.append("Select * from employee where emp_id in (#{empId}");
Mybatis ersetzen die Werte aus den Parametern. Aber wenn der Wert ersetzt wird, wird die Abfrage etwas darunter.
Select * from employee where emp_id in ('123,345,667,888');
, die eine ungültige Abfrage ist als Mybatis die einfachen Anführungszeichen in der Abfrage hinzugefügt.
Wie sollte ich dieses Problem beheben? Ich kann die Werte nicht verketten, um SQL Injection zu verhindern.
@Auswählen (" ") In meinem Fall ist es auch Arbeit. – zhuguowei