性能工具之Jmeter JDBC Request學習
- 2019 年 12 月 24 日
- 筆記

背景
《橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。》堅持不斷學習就能到達《千山同一月,萬戶盡皆春。千江有水千江月,萬里無雲萬里天》
jdbc連接資料庫原理
概念:Java DataBase Connectivity Java 資料庫連接, Java語言操作資料庫,JDBC本質:其實是官方(sun公司)定義的一套操作所有關係型資料庫的規則,即介面。各個資料庫廠商去實現這套介面,提供資料庫驅動jar包。我們可以使用這套介面(JDBC)編程,真正執行的程式碼是驅動jar包中的實現類。
java鏈接方法複習
操作步驟
- 導入驅動jar包 mysql-connector-java**.jar包
- 註冊驅動
- 獲取資料庫連接對象 Connection
- 定義sql
- 獲取執行sql語句的對象 Statement
- 執行sql,接受返回結果
- 處理結果
- 釋放資源
參考程式碼:
public static void main(String[] args) throws ClassNotFoundException, SQLException { //1. 導入驅動jar包 //2.註冊驅動 Class.forName("com.mysql.cj.jdbc.Driver"); //3.獲取資料庫連接對象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/7d?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "123456"); //4.定義sql語句 String sql = "select * from user_table"; //5.獲取執行sql的對象 Statement Statement stmt = conn.createStatement(); //6.執行sql ResultSet resultSet = stmt.executeQuery(sql); while (resultSet.next()) { System.out.println("用戶: " + resultSet.getString("create_user") + "密碼:" + resultSet.getString("pass_word")); } //7.處理結果 //8.釋放資源 stmt.close(); conn.close(); }
解釋:
- DriverManager:驅動管理對象
static void registerDriver(Driver driver) :註冊與給定的驅動程式 DriverManager 。
- 寫程式碼使用:Class.forName("com.mysql.cj.jdbc.Driver");
- 通過查看源碼發現:在com.mysql.jdbc.Driver類中存在靜態程式碼塊
- 註冊驅動:告訴程式該使用哪一個資料庫驅動jar
- 獲取資料庫連接:
方法:static Connection getConnection(String url, String user, String password)
- url:指定連接的路徑
- 語法:jdbc:mysql://ip地址(域名):埠號/資料庫名稱
- 例子:jdbc:mysql://localhost:3306/7d
- 細節:如果連接的是本機mysql伺服器,並且mysql服務默認埠是3306,則url可以簡寫為:jdbc:mysql:///資料庫名稱
- user:用戶名
- password:密碼
- Connection:資料庫連接對象
獲取執行sql 的對象
- Statement createStatement()
- PreparedStatement prepareStatement(String sql) 管理事務:
- 開啟事務:setAutoCommit(boolean autoCommit) :調用該方法設置參數為false,即開啟事務
- 提交事務:commit()
- 回滾事務:rollback()
- Statement:執行sql的對象
執行sql
- boolean execute(String sql) :可以執行任意的sql 了解
- int executeUpdate(String sql) :執行DML(insert、update、delete)語句、DDL(create,alter、drop)語句 返回值:影響的行數,可以通過這個影響的行數判斷DML語句是否執行成功 返回值>0的則執行成功,反之,則失敗。
- ResultSet executeQuery(String sql) :執行DQL(select)語句
- account表 添加一條記錄
- account表 修改記錄
- account表 刪除一條記錄
- ResultSet:結果集對象,封裝查詢結果
- boolean next(): 游標向下移動一行,判斷當前行是否是最後一行末尾(是否有數據),如果是,則返回false,如果不是則返回true
- getXxx(參數):獲取數據 Xxx:代表數據類型 如:int getInt() , String getString()
- int:代表列的編號,從1開始 如:getString(1)
- String:代表列名稱。如:getDouble("balance")
- 使用步驟:
- 游標向下移動一行
- 判斷是否有數據
- 獲取數據
//循環判斷游標是否是最後一行末尾。 while(rs.next()){ //獲取數據 //6.2 獲取數據 int id = rs.getInt(1); String name = rs.getString("name"); double balance = rs.getDouble(3); System.out.println(id + "--->" + name + "--->" + balance); }
Jmeter中jdbc鏈接方式簡單介紹
- 新建測試計劃
- 增加JDBC Connection Configuration
- JDBC Request
打Test Plan
選擇mysql驅動

打開JDBC Connection Configuration

填寫

重要參數說明
- Variable Name:資料庫連接池的名稱,我們可以有多個jdbc connection configuration,每個可以起個不同的名稱,在jdbc request中可以通過這個名稱選擇合適的連接池進行使用。
- Database URL:資料庫url,jdbc:mysql://主機ip或者機器名稱:mysql監聽的埠號/資料庫名稱, 如:jdbc:mysql://localhost:3306/7d
- JDBC Driver class:JDBC驅動
- username:資料庫登陸的用戶名
- passwrod:資料庫登陸的密碼
新建JDBC Request

輸入查詢語句

重要的參數說明:
- Variable Name:資料庫連接池的名字,需要與JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
- Query:填寫的sql語句
- Parameter valus:參數值
- Parameter types:參數類型,可參考:Javadoc for java.sql.Types
- Variable names:保存sql語句返回結果的變數名
- Result variable name:創建一個對象變數,保存所有返回的結果
- Query timeout:查詢超時時間
- Handle result set:定義如何處理由callable statements語句返回的結果
增加結果查看樹
執行結果顯示為:

總結
以上是最簡單的操作,希望給大家做個複習;
