­

性能工具之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")
  • 使用步驟:
  1. 游標向下移動一行
  2. 判斷是否有數據
  3. 獲取數據
//循環判斷游標是否是最後一行末尾。   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語句返回的結果

增加結果查看樹

執行結果顯示為:

總結

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

讓性能的價值體現出來