Interface de QueryRunner
le org.apache.commons.dbutils.QueryRunnerclass est la classe centrale de la bibliothèque DBUtils. Il exécute des requêtes SQL avec des stratégies enfichables pour la gestion des ResultSets. Cette classe est thread-safe.
Déclaration de classe
Voici la déclaration de la classe org.apache.commons.dbutils.QueryRunner -
public class QueryRunner
extends AbstractQueryRunner
Usage
Step 1 - Créez un objet de connexion.
Step 2 - Utilisez les méthodes d'objet QueryRunner pour effectuer des opérations de base de données.
Exemple
L'exemple suivant montre comment lire un enregistrement à l'aide de la classe QueryRunner. Nous lirons l'un des enregistrements disponibles dans le tableau des employés.
Syntaxe
ResultSetHandler<Employee> resultHandler = new BeanHandler<Employee>(Employee.class);
Employee emp =
queryRunner.query(conn, "SELECT * FROM employees WHERE first=?", resultHandler, "Sumit");
Où,
resultHandler - Objet ResultSetHandler pour mapper le jeu de résultats à l'objet Employee.
queryRunner - Objet QueryRunner pour lire l'objet employé de la base de données.
Pour comprendre les concepts mentionnés ci-dessus liés à DBUtils, écrivons un exemple qui exécutera une requête de lecture. Pour écrire notre exemple, créons un exemple d'application.
Étape | La description |
---|---|
1 | Mettez à jour le fichier MainApp.java créé sous le chapitre DBUtils - Première application . |
2 | Compilez et exécutez l'application comme expliqué ci-dessous. |
Voici le contenu de la 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;
}
}
Voici le contenu de la MainApp.java fichier.
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);
}
}
}
Une fois que vous avez terminé de créer les fichiers source, laissez-nous exécuter l'application. Si tout va bien avec votre application, elle imprimera le message suivant.
ID: 103, Age: 28, First: Sumit, Last: Mittal