一.資料庫驅動類和url格式:
database
driver class
database url
mysql
com.mysql.jdbc.driver
jdbc:mysql://host[:port]/dbname
postgresql
org.postgresql.driver
jdbc:postgresql:
oracle
oracle.jdbc.oracledriver
jdbc:oracle:thin:@//host:port/service or
jdbc:oracle:thin:@(description=(address=(host=)(protocol=tcp)(port=))(connect_data=(sid=)))
ingres (2006)
ingres.jdbc.ingresdriver
jdbc:ingres://host:port/db[;attr=value]
sql server (ms jdbc driver)
com.microsoft.sqlserver.jdbc.sqlserverdriver
jdbc:sqlserver://host:port;databasename=dbname
apache derby
org.apache.derby.jdbc.clientdriver
jdbc:derby://server[:port]/databasename[;urlattributes=value[;...]]
注:僅供參考
二.相關引數
1.variable name
其中的variable name和上面jdbc connection configuration中的variable name相同,這裡表示jdbc connection configuration 建立乙個名為pubpool的連線池,之後其他jdbc request 都共用這個連線池。
2.sql query
(1)query type
*** statement需要填寫的sql是一句完整可執行的sql,而prepared *** 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為$,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"屬性更改。
(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);
jmeter通過mysql傳送jdbc請求
3 jmeter工具安裝完畢並可以順利使用。1 開啟jmeter,並在測試計畫中新增jar包 2 新增 jbdc鏈結配置 jdbc connection configuration 新增執行緒組右擊 新增 add 配置元件 config element jdbc connection configu...
JDBC相關API簡介
drivermanager,可以稱之為驅動管理類。主要作用 1 註冊驅動 實際開發中,不會使用 drivermanager.registerdriver new driver 的方式來註冊,因為driver類中存在靜態 塊,已經執行了這一步驟,這會導致驅動註冊兩次。通常使用 class.fornam...
關於jdbc連線
1 載入jdbc驅動,載入mysql的驅動類 class.forname com.mysql.jdbc.driver 2 提供jdbc連線的url jdbc mysql localhost 3306 test?useunicode true characterencoding gbk 3 建立資料庫...