ResultSetHandler इंटरफ़ेस

org.apache.commons.dbutils.ResultSetHandler ResultSets को ऑब्जेक्ट में बदलने के लिए इंटरफ़ेस जिम्मेदार है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है। org.apache.commons.dbutils.ResultSetHandler वर्ग -

public interface ResultSetHandler<T>

प्रयोग

  • Step 1 - एक कनेक्शन ऑब्जेक्ट बनाएँ।

  • Step 2 - ResultSetHandler का कार्यान्वयन बनाएं।

  • Step 3 - QueryRunner ऑब्जेक्ट के लिए resultSetHandler पास करें, और डेटाबेस ऑपरेशन करें।

उदाहरण

निम्न उदाहरण प्रदर्शित करेगा कि कैसे ResultSetHandler वर्ग का उपयोग कर रिकॉर्ड बनाया जाए। हम कर्मचारी तालिका में उपलब्ध रिकॉर्ड में से एक को पढ़ेंगे।

वाक्य - विन्यास

Employee emp = queryRunner.query(conn, "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");

कहाँ पे,

  • resultHandler - ResultSetHandler ऑब्जेक्ट को मैप करने के लिए कर्मचारी ऑब्जेक्ट पर सेट परिणाम।

  • queryRunner - QueryRunner ऑब्जेक्ट डेटाबेस से कर्मचारी ऑब्जेक्ट को पढ़ने के लिए।

DBUtils से संबंधित उपर्युक्त अवधारणाओं को समझने के लिए, हम एक उदाहरण लिखते हैं जो एक रीड क्वेरी चलाएगा। अपना उदाहरण लिखने के लिए, आइए हम एक नमूना एप्लिकेशन बनाएं।

चरण विवरण
1 अध्याय DBUtils - प्रथम अनुप्रयोग के तहत बनाए गए फ़ाइल MainApp.java को अपडेट करें ।
2 नीचे बताए अनुसार एप्लिकेशन को कंपाइल करें और चलाएं।

निम्नलिखित की सामग्री है 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;
   }
}

निम्नलिखित की सामग्री है MainApp.java फ़ाइल।

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Arrays;

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

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<Object[]> handler = new ResultSetHandler<Object[]>() {
         public Object[] handle(ResultSet rs) throws SQLException {
            if (!rs.next()) {
               return null;
            }
            ResultSetMetaData meta = rs.getMetaData();
            int cols = meta.getColumnCount();
            Object[] result = new Object[cols];

            for (int i = 0; i < cols; i++) {
               result[i] = rs.getObject(i + 1);
            }
            return result;
         }
      };

      try {
         Object[] result  = queryRunner.query(conn, "SELECT * FROM employees WHERE id=?",
            handler, 103);
         //Display values
         System.out.print("Result: " + Arrays.toString(result));            
      } finally {
         DbUtils.close(conn);
      }              
   }
}

एक बार जब आप स्रोत फ़ाइलों का निर्माण कर लेते हैं, तो हम एप्लिकेशन चलाते हैं। यदि आपके आवेदन में सब कुछ ठीक है, तो यह निम्नलिखित संदेश को प्रिंट करेगा।

Connecting to database...
Result: [103, 33, Sumit, Mittal]