Types de cible pour les méthodes intégrées lançant une requête sur les bases de données : types encapsuleur primitif et types objet

Dans la plupart des cas, lorsque l'instruction SQL SELECT indique une colonne ou une expression unique dans sa liste de sélection, un encapsuleur unique Java primitif ou un objet simple constitue la représentation naturelle des données sélectionnées.

Le type objet simple correspond dans ce cas à un type de données Java pris en charge directement par JDBC, excepté seulement les types définis par l'utilisateur.

Le mappage naturel des colonnes individuelles d'un tableau vers un encapsuleur primitif Java ou un objet simple est défini par les tables de conversion des types de données de la norme JDBC. Ces tables définissent également les conversions de types de données autorisées entre les types de données pris en charge par la source de données et les types d'encapsuleurs primitifs Java et les objets simples lorsque des données sont sélectionnées ou insérées dans une source de données.

Exemple

Par exemple, vous pouvez utiliser le type objet simple java.lang.String comme cible pour le résultat d'une instruction SELECT sur une colonne définie par le type de données CHAR.

Vous pouvez utiliser la classe d'encapsuleur primitif Float comme cible pour le résultat d'une instruction SELECT sur une colonne définie par DECIMAL(5,2).

Une application ayant besoin du groupe de départements du tableau EMP peut exécuter une requête et stocker les résultats de cette requête dans un tableau String en utilisant un code identique à celui-ci :

Connection con = DriverManager.getConnection(...);
Data db = DataFactory.getData(con);
String[] departmentList = db.queryArray(
 "SELECT DISTINCT WORKDEPT FROM SAMPLE_SCHEMA.EMP",
     String.class );

Il s'agit ci-dessus d'un appel de la méthode générique queryArray, définie par public <T> T[] queryArray (java.lang.String sql, Class<T> returnClass, Object... parameters).


Commentaires