一.數據庫驅動類和URL格式:mysql
|
注:僅供參考
二.相關參數
1.Variable Name
其中的Variable Name和上面JDBC Connection Configuration中的Variable Name相同,這裏表示JDBC Connection Configuration 創建一個名爲pubpool的鏈接池,以後其餘JDBC Request 都共用這個鏈接池。
2.SQL Query
(1)Query Type
xxx Statement須要填寫的sql是一句完整可執行的sql,而Prepared xxx Statement容許用戶在sql中使用?,?而後再Parameter values和Parameter types中填寫參數和類型,最終執行時替代sql中的?,造成一句完整的sql語句。
Select statement:
##待驗證,網上找的例子:
若是SQL語句中須要使用參數變量,那麼Query Type 須要設置爲Select Statement ,須要先添加Random Variable,而後在Parameter Values中輸入${變量名稱},${變量名稱};
在Paramter types中輸入變量的數據類型。 以下圖示:
中間用逗號分隔。只能執行第一個SQL語句。
Update statement: 對於Insert、Update、Delete語句,須要設置Query Type爲:Update Statament.數據修改語句中可使用參數,並且能夠順序執行多個修改語句。
Egg:
Callable statement:
##待驗證:
多個查詢語句(不使用參數的狀況下)能夠放在一塊兒順序執行,須要設置Query Type爲Callable Statement,而後順序輸入select語句,不用加go或者分號。若是Query Type設置爲:Select Statement的話,只執行第一個SQL語句。
Prepared select statement:
Prepared update statement:
Commit:
把JDBC connection configuration中的自動提交爲false,執行更改,增長或刪除操做後,查詢數據並沒有更改,再添加一個JDBC Request,設置其Query Type爲commit,再次查詢,以前的操做生效。
Rollback:
把JDBC connection configuration中的自動提交爲false,執行更改,增長或刪除操做後,查詢數據並沒有更改(至關於編輯沒保存), 再添加一個JDBC Request,設置其Query Type爲rollback(至關於編輯後撤銷),再次查詢,仍然沒有更改。
若是把JDBC connection configuration中的自動提交爲true,執行更改,增長或刪除操做後,查詢數據更改,但一旦事物被提交就沒法rollback。
Autocommit(false)和Autocommit(true):
把JDBC connection configuration中的自動提交爲true或false,是設置系統參數的默認值。添加一個JDBC Request,設置其Query Type Autocommit爲true或false後(至關於修改系統參數),再進行對數據庫的增長、刪除、修改操做。
Edit:必須是對上述之一的結果的引用, 爲使用正則表達式的操做。
(2)Parameter values:表示咱們要添加的數據,須要不一樣數據添加可使用參數化
Parameter types爲上面須要輸入數據的類型,與上面的一一對應
Parameter values和Parameter types:成對出現,且sql語句中有多少個?,這裏就必須有多少對參數鍵值對,假設sql語句爲select * from ZMYW_USER where ID=?,那麼能夠設置Parameter values爲${id},Parameter types爲VARCHAR
(3)Variable names:變量名稱,爲數據庫的字段名稱,有多個字段返回時,可使用逗號隔開,用於存放select操做返回的查詢結果
Result variable name:用於存放select操做返回的查詢結果集。
3.擴展:
(1) 當選擇了"Prepared select statement"、」Prepared update statement "Callable statement"的類型時,每一個鏈接的語句緩存使用 JDBC 請求。在默認狀況下將存儲每一個鏈接高達 100 Prepared Statements,這可能會影響您的數據庫 (打開的遊標)。這能夠經過定義"jdbc sampler.nullmarker"屬性更改。
(2)在實際的項目中,至少有2種類型的JDBC請求須要關注:select語句和存儲過程。前者反應了select語句是否高效,以及表的索引等是否須要優化;後者則是反應存儲過程的算法是否高效。它們若是效率低下,必然會帶來響應上的不盡如人意。對於這兩種請求,JDBC請求的配置略有區別。
(1)Query Type爲Select Statement時,對應執行代碼爲:stmt = conn.createStatement();
ResultSet rs = null;
rs = stmt.executeQuery(sql);
return getStringFromResultSet(rs).getBytes(ENCODING);
(2)Query Type爲Callable Statement時,對應執行代碼爲:CallableStatement cstmt = getCallableStatement(conn);
int out[]=setArguments(cstmt);
boolean hasResultSet = cstmt.execute();
String sb = resultSetsToString(cstmt,hasResultSet, out);
return sb.getBytes(ENCODING);
(3)Query Type爲Update Statement時,對應執行代碼爲:stmt = conn.createStatement();
stmt.executeUpdate(sql);
int updateCount = stmt.getUpdateCount();
String results = updateCount + " updates";
return results.getBytes(ENCODING);
(4)Query Type爲Prepared Select Statement時,對應執行代碼爲:PreparedStatement pstmt = getPreparedStatement(conn);
setArguments(pstmt);
ResultSet rs = null;
rs = pstmt.executeQuery();
return getStringFromResultSet(rs).getBytes(ENCODING);
(5)Query Type爲Prepared Update Statement時,對應執行代碼爲:
PreparedStatement pstmt = getPreparedStatement(conn);
setArguments(pstmt);
pstmt.executeUpdate();
String sb = resultSetsToString(pstmt,false,null);
return sb.getBytes(ENCODING);
(6)Query Type爲Rollback時,對應執行代碼爲:
conn.rollback();
return ROLLBACK.getBytes(ENCODING);
(7)Query Type爲Commit時,對應執行代碼爲:
conn.commit();
return COMMIT.getBytes(ENCODING);
(8)Query Type爲AutoCommit(false)時,對應執行代碼爲:conn.setAutoCommit(false);
return AUTOCOMMIT_FALSE.getBytes(ENCODING);
(9)Query Type爲AutoCommit(true)時,對應執行代碼爲:
conn.setAutoCommit(true);
return AUTOCOMMIT_TRUE.getBytes(ENCODING);
(10)其它狀況直接拋異常:throw new UnsupportedOperationException("Unexpected query type: "+_queryType);