亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何傳遞參數來查詢?

如何傳遞參數來查詢?

至尊寶的傳說 2019-07-09 15:35:56
如何傳遞參數來查詢?我試圖為我的應用程序編寫一個查詢,但我遇到了一些問題。我需要將數據庫中的一個字段作為參數傳遞,例如:SELECT name, phone, email  FROM company  WHERE $P{clause} = $P{key}ORDER BY $P{order}因為WHERE子句和ORDERBY子句是動態的,用戶可以選擇。使用$P{}沒用的。
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

中有兩個用于參數引用的語法表達式。JasperReports$P{}$P!{}.

  • $P{parame}語法

    主要用于設置

    哪里

    輸入參數值。替換算法是“智能”的,它的實現使用

    java.sql.PreparedStatement

    *為

    java.lang.String

    參數,引擎將替換

    $P{參數名}

    有報價,

    java.lang.Integer

    -數值等等。

樣本:

| Parameter name |  Parameter type   | Parameter value |
|:---------------|-------------------|:---------------:|
|   eventName    | java.lang.String  |  Olympic Games  |
|   eventType    | java.lang.Integer |       2         |

原文(取代):

SELECT startDate, endDate, rating FROM events WHERE name=$P{eventName} AND type=$P{eventType}

其結果將是:

SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND type=2
  • $P!{parame}語法

    主要用于做“簡單”替換。

樣本:

| Parameter name |  Parameter type   | Parameter value |
|:---------------|------------------:|:---------------:|
|   tableName    | java.lang.String  |     events      |
|   eventName    | java.lang.String  |  Olympic Games  |
|   channel      | java.lang.String  |     'BBC'       |
|   type         | java.lang.String  |     sport       |

原文(取代):

SELECT startDate, endDate, rating FROM $P!{tableName} WHERE name='$P!{eventName}' AND channel=$P!{channel} AND type=$P!{type}

其結果將是:

SELECT startDate, endDate, rating FROM events WHERE name='Olympic Games' AND channel='BBC' AND type=sport

獲取更多信息你可以看這個使用報表參數發郵件然后看這個查詢樣本.


在您的例子中,正確的表達式可能如下所示:

SELECT name, phone, email FROM company WHERE $P!{clause} = $P{key} ORDER BY $P!{order}

哪里$P{KEY}java.lang.String參數

或者像這樣(這取決于$P!{子句}價值)

SELECT name, phone, email FROM company WHERE $P!{clause} = $P!{key} ORDER BY $P!{order}

哪里$P{KEY}java.lang.String參數


查看完整回答
反對 回復 2019-07-09
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

如果需要按參數排序,請嘗試如下:

SELECT name, phone, email ,(case when $P{order} = 'name' then name when $P{order} = 'phone' then phone else email end) as orderlistFROM company 
WHERE $P{clause} = $P{key}ORDER BY orderlist


查看完整回答
反對 回復 2019-07-09
  • 2 回答
  • 0 關注
  • 594 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號