2012-12-07 94 views
3

假設我的查詢是這樣的,在這裏conn是連接對象:如何打印Java預處理語句中的綁定變量。

String countrycode=91;//it is dynamic in my case 
String query = "update tblemployeedata set countrycode='?'; 
PreparedStatement pstmtUpdate = conn.prepareStatement(query); 
pstmtUpdate.setString(1,countrycode); 

現在上述國家代碼設置後,我希望看到形成像

update tblemployeedata set countrycode='91'; 

pstmtUpdate.executeUpdate(); 

回答

0

您可以使用pstmtUpdate.toString()方法我的實際查詢查看在準備好的語句中設置參數後進行的實際查詢。

+0

這個查詢將不會打印接收到的參數,它會打印?而不是params。 –

+0

@BhavikAmbani否,它將打印參數值,如果它們在調用'toString'方法之前已經設置。 – Abubakkar

+1

@阿布。它不會打印至少不在我的情況。在我的情況下它是打印:: [email protected] – Prateek

-2

您可以通過以下方式獲取查詢的價值。

Class stmt1 = pstmtUpdate.getClass(); 
java.lang.reflect.Field mem = stmt1.getField("sql"); 
String value= (String)mem.get(pstmt); 

希望這將幫助你

+0

OP想查看'update tblemployeedata set countrycode = '91';'(整個查詢)而不是'91'(設置的值) – Abubakkar

+0

我的答案將打印完整查詢,查詢的設置值爲 –

+1

它給了我沒有這樣的字段異常。你可以詳細說明這個例子更多 – Prateek