Création d'objets JDBC de plus haut niveau |
Puisque l'accès à une base de données nécessite l'utilisation conjointe de plusieurs objets, il peut être intéressant de créer quelques objets de plus haut niveau encapsulant la plupart des comportements cités ci-dessus.
Ainsi la création d'un objet DataBase pour permettre d'encapsuler l'ensemble des objets nécessaires à la connection à une base de données (Connection, Statement, DataBaseMetaData), ainsi que de (re)définir des méthodes simples permettant de rendre plus simples certaines opérations, comme la création de la connection, la récupération du nom des tables, ainsi qu'une méthode Execute rendant l'exécution de requête triviale.
class Database { Connection con; resultSet results; ResultSetMetaData rsmd; DatabaseMetaData dm; String catalog; String types[]; //---------------------------- public Database(String Driver) { types = new String[1]; types[0] = "TABLES"; try { Class.forName(driver); } catch(Exception e){ System.out.println("Erreur lors du chargement du driver:"+ e.getMessage()); } } //------------------------------------------------------ public void Open(String url,String login,String password) { try{ con = DriverManager.getConnection(url,login,password); dma = con.getMetaData(); results = new resultSet(dma.getCatalogs()); String s[]; while(results.hasMoreElements()) { s = results.NetxElement(); } } catch(Exception e){ System.out.println("echec d'ouverture:"+e.getMessage()); } } //----------------- public void Close() { try{ con.close(); } catch(Exception e){ System.out.println("echec lors de la fermeture:"+e.getMessage()); } } //----------------------------- public String[] getTableNames() { String[] tbnames = null; Vector tname = new Vector(); try{ results = new resultSet(dma.getTables(catalog,null,"%",types)); while (results.hasMoreElements()) tname.addElement(results.getColumnValue("TABLE_NAME")); } catch(Exception e){ System.out.println(e.getMessage()); } tbnames = new String[tname.size()]; for(int i=0;i0) results = Execute("Select "+columnName+" from "+table+" order by "+columnName); } catch(Exception e){ System.out.println("Erreur sur la valeur de la colonne "+columnName+e.getMessage()); } } //------------------------------------------------ public String getNextValue(String columnName) { String res = ""; try{ if (results.hasMoreElements()) res = results.getColumnvalue(columnName); } catch(Exception e){ System.out.println("Erreur sur la valeur suivante "+columnName+e.getMessage()); } return res; } //------------------------------------------------ public resultSet Execute(String sql) { results = null; try{ Statement stmt = con.createStatement(); results = new resultSet(stmt.executeQuery(sql)); } catch(Exception e){ System.out.println(e.getMessage()); } return results; } } De la même façon, un nouvel objet resultSet (avec un r minuscule) peut être intéressant s'il permet de façon transparente de reourner automatiquement les résultats sous forme d'un tableau de valeurs, ainsi qu'en encapsulant le nombre et le nom des colonnes contenues dans l'objet resultSet..
Ajouter aux Favoris Ajouter aux votre page
Acceuil | Forum| Contactez-Nous | Annace |Chat| Music |Radios|Sockets |Protocoles|Windows NT
Langage C |Langage C++ | Assembleur | Java | Perl |Pascal/delphi | Visual basic|MERISE | SQL| JDBC| ODBC
ASP|CGI |HTML |DHTML |XML|Javascript |JSP |PHP|Servlets |VBScript |WAP |UNIX |Linux |MacOS|Windows 9x
Assemblage-PC |Modèle relationnel|Histoire-PC|Fonctionnement-PC|photo pour rire|MS-Dos|Architecture-PC
Flash MX |Word-2003|Power Point|Excel|Langage C|Langage Java|Visual Basic|La base XP | programming
Physique Arabic partie I|Programation en arabe|Physique Français|Internet| Sécurité Informatique
HTML |Agebre en Français|Math Français partie I|Physique Arabic partie II| الطرق العددية
Electricité| Math Français partie II|Math en Arabic|Agebre en Arabic| الأعداد العقدية
Tous les cours informatiques en vidéos |Droit Informatique |logiciels
Tous les cours physiques en vidéos |Microsoft office
Cours math en vidéos | Msn en ligne
TV Live
Autoformations les cours informatiques en vidéos gratuitement
:: Copyright © 2008 http://www.autoformations.co.cc All rights reserved ::