JasperReports에서 쿼리를 작성할 때 사용자로부터 동적 매개변수를 전달해야 할 수도 있습니다. 이를 위해 매개변수 참조를 위한 두 가지 구문 표현식인 $P{}
및 $P!{}
이 있습니다.
$P{}
문법$P{}
구문은 주로 WHERE 절에서 입력 매개변수 값을 설정하는 데 사용됩니다. java.sql.PreparedStatement
과 유사한 "스마트" 교체 알고리즘을 사용합니다. 예를 들어, java.lang.String
매개변수는 따옴표로 묶인 값으로 대체되고, java.lang.Integer
매개변수는 숫자 값으로 대체됩니다.
예를 들어 다음 매개변수를 고려하세요.
参数名称 | 参数类型 | 参数值 |
---|---|---|
eventName | java.lang.String | Olympic Games |
eventType | java.lang.Integer | 2 |
원래 표현(대체):
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}</code>
결과는 다음과 같습니다.
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2</code>
$P!{}
문법$P!{}
구문은 주로 간단한 대체에 사용됩니다. 특별한 처리 없이 매개변수 값을 그대로 대체합니다.
예를 들어 다음 매개변수를 고려하세요.
参数名称 | 参数类型 | 参数值 |
---|---|---|
tableName | java.lang.String | events |
eventName | java.lang.String | Olympic Games |
원래 표현(대체):
<code class="language-sql">SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}'</code>
결과는 다음과 같습니다.
<code class="language-sql">SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games'</code>
귀하의 질문에 따르면 WHERE 및 ORDER BY 절을 동적으로 설정해야 하며 다음 표현식을 사용할 수 있습니다.
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}</code>
여기서 $P{key}
는 java.lang.String
매개변수입니다. $P!{clause}
값에 인용된 값이 필요한 경우 대신 다음 표현식을 사용할 수 있습니다.
<code class="language-sql">SELECT name, phone, email FROM company WHERE $P!{clause} = '$P!{key}' ORDER BY $P!{order}</code>
위 내용은 JasperReports 쿼리의 WHERE 및 ORDER BY 절에 매개변수를 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!