QueryRunner arayüzü

org.apache.commons.dbutils.QueryRunnersınıfı, DBUtils kitaplığındaki merkezi sınıftır. Sonuç Kümelerini işlemek için takılabilir stratejilerle SQL sorgularını yürütür. Bu sınıf iş parçacığı açısından güvenlidir.

Sınıf Beyanı

Org.apache.commons.dbutils.QueryRunner sınıfının bildirimi aşağıdadır -

public class QueryRunner
   extends AbstractQueryRunner

Kullanım

  • Step 1 - Bir bağlantı nesnesi oluşturun.

  • Step 2 - Veritabanı işlemleri yapmak için QueryRunner nesne yöntemlerini kullanın.

Misal

Aşağıdaki örnek, QueryRunner sınıfını kullanarak bir kaydın nasıl okunacağını gösterecektir. Çalışan Tablosundaki mevcut kayıtlardan birini okuyacağız.

Sözdizimi

ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);
Employee emp = 
   queryRunner.query(conn, "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");

Nerede,

  • resultHandler - Sonuç kümesini Employee nesnesine eşlemek için ResultSetHandler nesnesi.

  • queryRunner - Çalışan nesnesini veritabanından okumak için QueryRunner nesnesi.

DBUtils ile ilgili yukarıda bahsedilen kavramları anlamak için, bir okuma sorgusu çalıştıracak bir örnek yazalım. Örneğimizi yazmak için örnek bir uygulama oluşturalım.

Adım Açıklama
1 DBUtils - İlk Uygulama bölümünde oluşturulan MainApp.java dosyasını güncelleyin .
2 Uygulamayı aşağıda açıklandığı gibi derleyin ve çalıştırın.

Aşağıdakilerin içeriği Employee.java.

public class Employee {
   private int id;
   private int age;
   private String first;
   private String last;
   public int getId() {
      return id;
   }
   public void setId(int id) {
      this.id = id;
   }
   public int getAge() {
      return age;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public String getFirst() {
      return first;
   }
   public void setFirst(String first) {
      this.first = first;
   }
   public String getLast() {
      return last;
   }
   public void setLast(String last) {
      this.last = last;
   }
}

Aşağıdakilerin içeriği MainApp.java dosya.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;

public class MainApp {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
   static final String DB_URL = "jdbc:mysql://localhost:3306/emp";

   //  Database credentials
   static final String USER = "root";
   static final String PASS = "admin";

   public static void main(String[] args) throws SQLException {
      Connection conn = null;
      QueryRunner queryRunner = new QueryRunner();
      
      //Step 1: Register JDBC driver
      DbUtils.loadDriver(JDBC_DRIVER);

      //Step 2: Open a connection
      System.out.println("Connecting to database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);

      //Step 3: Create a ResultSet Handler to handle Employee Beans
      ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);

      try {
         Employee emp = queryRunner.query(conn,
            "SELECT * FROM employees WHERE id=?", resultHandler, 103);
         //Display values
         System.out.print("ID: " + emp.getId());
         System.out.print(", Age: " + emp.getAge());
         System.out.print(", First: " + emp.getFirst());
         System.out.println(", Last: " + emp.getLast());
      } finally {
         DbUtils.close(conn);
      }        
   }
}

Kaynak dosyaları oluşturmayı tamamladığınızda uygulamayı çalıştırmamıza izin verin. Uygulamanızda her şey yolundaysa, aşağıdaki mesajı yazdıracaktır.

ID: 103, Age: 28, First: Sumit, Last: Mittal