L’interface PreparedStatement | JDBC – Java

L’interface PreparedStatement est une sous-interface de l’interface Statement. Il est utilisé pour exécuter une requête paramétrée.
 
 
Regardons l’exemple d’une requête paramétrée:

String query = "INSERT INTO users values(?,?,?)";

Comme vous pouvez le voir, nous passons le paramètre (?) Pour les valeurs. Sa valeur sera définie en appelant les méthodes de définition de PreparedStatement.
 

Pourquoi utiliser PreparedStatement?

Améliore les performances: les performances de l’application seront plus rapides si vous utilisez l’interface PreparedStatement car la requête n’est compilée qu’une seule fois.
 

Comment obtenir une instance de PreparedStatement?

La méthode prepareStatement() de l’interface Connection est utilisée pour renvoyer l’objet de PreparedStatement.
 

Les méthodes couramment utilisées de l’interface PreparedStatement :
Méthode
Description
public void setInt(int paramIndex, int value) Définit la valeur entière sur l’index du paramètre donné.
public void setString(int paramIndex, String value) Définit la valeur String sur l’index du paramètre donné.
public void setFloat(int paramIndex, float value) Définit la valeur flottante sur l’index du paramètre donné.
public void setDouble(int paramIndex, double value) Définit la valeur double sur l’index du paramètre donné.
public int executeUpdate() Exécute la requête. Il est utilisé pour créer, supprimer, insérer, mettre à jour, etc.
public ResultSet executeQuery() Exécute la requête SELECT. Il renvoie une instance de ResultSet.

 
 

Exemple: L’interface PreparedStatement

Créeons d’abord une table comme indiqué ci-dessous:

CREATE TABLE users(
	id NUMBER(5),
	nom VARCHAR2(100)
);

Insérons maintenant des enregistrements dans cette table à l’aide du code suivant:

import java.sql.*;

public class Insert
{
	public static void main(String args[])
	{
		try
		{
			Class.forName("oracle.jdbc.driver.OracleDriver");

			Connection conn = DriverManager.getConnection(
				"jdbc:oracle:thin:@localhost:1521:xe",
				"system",
				"oracle"
			);

			PreparedStatement stmt = conn.prepareStatement("INSERT INTO users values(?,?)");
			stmt.setInt(1, 200); //1 : spécifie le premier paramètre de la requête
			stmt.setString(2, "Alex"); //2 : spécifie le deuxiéme paramètre de la requête

			int i = stmt.executeUpdate();
			System.out.println(i+" inséré avec succés");

			conn.close();
		}
		catch(Exception e){
			System.out.println(e);
		}
	}
}

 
QCM Java - JDBC

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *