- DBUtils - Discussion
- DBUtils - Useful Resources
- DBUtils - Quick Guide
- DBUtils - Using DataSource
- DBUtils - Custom Row Processor
- DBUtils - Custom Handler
- DBUtils - MapListHandler Class
- DBUtils - ArrayListHandler Class
- DBUtils - BeanListHandler Class
- DBUtils - BeanHandler Class
- DBUtils - ResultSetHandler interface
- DBUtils - AsyncQueryRunner interface
- DBUtils - QueryRunner interface
- DBUtils - Delete Query
- DBUtils - Update Query
- DBUtils - Read Query
- DBUtils - Create Query
- DBUtils - First Application
- DBUtils - Environment Setup
- DBUtils - Overview
- DBUtils - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
QueryRunner interface
The org.apache.commons.dbutils.QueryRunner class is the central class in the DBUtils pbrary. It executes SQL queries with pluggable strategies for handpng ResultSets. This class is thread safe.
Class Declaration
Following is the declaration for org.apache.commons.dbutils.QueryRunner class −
pubpc class QueryRunner extends AbstractQueryRunner
Usage
Step 1 − Create a connection object.
Step 2 − Use QueryRunner object methods to make database operations.
Example
Following example will demonstrate how to read a record using QueryRunner class. We ll read one of the available record in employee Table.
Syntax
ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class); Employee emp = queryRunner.query(conn, "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");
Where,
resultHandler − ResultSetHandler object to map result set to Employee object.
queryRunner − QueryRunner object to read employee object from database.
To understand the above-mentioned concepts related to DBUtils, let us write an example which will run a read query. To write our example, let us create a sample apppcation.
Step | Description |
---|---|
1 | Update the file MainApp.java created under chapter | .
2 | Compile and run the apppcation as explained below. |
Following is the content of the Employee.java.
pubpc class Employee { private int id; private int age; private String first; private String last; pubpc int getId() { return id; } pubpc void setId(int id) { this.id = id; } pubpc int getAge() { return age; } pubpc void setAge(int age) { this.age = age; } pubpc String getFirst() { return first; } pubpc void setFirst(String first) { this.first = first; } pubpc String getLast() { return last; } pubpc void setLast(String last) { this.last = last; } }
Following is the content of the MainApp.java file.
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; pubpc 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"; pubpc 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); } } }
Once you are done creating the source files, let us run the apppcation. If everything is fine with your apppcation, it will print the following message.
ID: 103, Age: 28, First: Sumit, Last: MittalAdvertisements