Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

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 connexion à 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 connexion, 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.NextElement();

  }
 }
 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()];

 tbnames = tname.toArray();
 return tbnames;

}

//--------------------------------
public String[] getTableMetaData()
{

 results = null;

 try{
  results = new resultSet(dma.getTables(catalog,null,"%",types));

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

 }
 return results.getMetaData();

}

//------------------------------------------------
public String[] getColumnMetaData(String tablename)
{

 results = null;

 try{
  results = new resultSet(dma.getTables(catalog,null,tablename,null));

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

 }
 return results.getMetaData();

}

//------------------------------------------------
public String[] getColumnNames(String table)
{

 String[] tbnames = null;

 Vector tname = new Vector();

 try{
  results = new resultSet(dma.getTables(catalog,null,table,null));

  while (results.hasMoreElements())
   tname.addElement(results.getColumnValue("COLUMN_NAME"));
 }
 catch(Exception e){
  System.out.println(e.getMessage());

 }
 tbnames = new String[tname.size()];

 for(int i=0;i<tname.size();i++)
  tbnames[i] = (String)tname.elementAt(i);

 return tbnames;

}

//------------------------------------------------
public void getColumnValue(String table, String columnName)
{

 try{
  if (table.length()>0)
   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 retourner 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...

Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Création d'objets JDBC » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Connexion à la base de données avec JDBC Connexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la... www.commentcamarche.net/contents/jdbc/jdbcconnect.php3
Créer ses propres objets déco sur Internet (Paris - Relax news) - Les designers en herbe ont dorénavant un site Internet leur permettant de créer des objets décoratifs selon leur imagination et de se les faire livrer quelques jours plus tard chez eux. Sur Shapeways.com, les internautes... www.commentcamarche.net/actualites/creer-ses-propres-objets-deco-sur-internet-5847822-actualite.php3
Les objets en langage C++ La création d'objets En C++, il existe deux façons de créer des objets, c'est-à-dire d'instancier une classe : de façon statique de façon dynamique La création statique La création statique d'objets consiste à créer un objet en lui affectant un... www.commentcamarche.net/contents/cpp/cppobjet.php3
VBA et les collections d'objets.VBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme... www.commentcamarche.net/faq/sujet-10397-vba-et-les-collections-d-objets
[MSN Messenger] Créer une adresse MSNPour créer une adresse MSN (@msn.com) ou faire une adresse hotmail (@hotmail.fr), il suffit de créer un compte .NET passport en procédant à l'inscription via l'adresse suivante... www.commentcamarche.net/faq/sujet-3785-msn-messenger-creer-une-adresse-msn
Créer une adresse HotmailPour créer un compte hotmail (@hotmail.fr), il suffit de créer un compte .NET passport en procédant à l'inscription via l'adresse suivante : https://accountservices.passport.net/reg.srf?id=9&cbid=956&sl=1&lc=1036 Des informations personnelles... www.commentcamarche.net/faq/sujet-6144-creer-une-adresse-hotmail
Le logiciel de création d'objets Les Sims 3Bonjour, je voudrais savoir où faut-il télécharger le logiciel de création pour Les sims 3... Je vous remercie d'avance pour vos réponses www.commentcamarche.net/forum/affich-13109855-le-logiciel-de-creation-d-objets-les-sims-3
[business objects] - création objets persoBonjour Pour la création d'objets personnels, et plus particulièrement écriture de la formule, comment fait-on pour ajouter des fonctions à ceux existants (ex. Ajout mois à une date) merci d'avance pour vos réponses www.commentcamarche.net/forum/affich-2147044-business-objects-creation-objets-perso
Objets JDBCQuelqu'un a-t-il essayé de créer et d'utiliser les objets JDBC proposés dans l'article "Création d'objets JDBC de plus haut niveau" du site ? L'objet Database proposé me semble comporter des erreurs. J'ai également essayé de créer l'objet resultSet... www.commentcamarche.net/forum/affich-125983-objets-jdbc
Télécharger LC ISO CreatorLC ISO Creator est très simple: Il permet de créer un fichier .ISO à partir de vos CD. Cela vous permet ensuite d'utiliser ces fichiers ISO pour les graver, utiliser un logiciel d'émulation de CD (pour ne plus avoir à utiliser le CD original) ou... www.commentcamarche.net/telecharger/telecharger-3673478-lc-iso-creator
Javascript - L'objet DateLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La... www.commentcamarche.net/contents/javascript/jsdate.php3
WSH - Objet WScriptWScript L'objet WScript est l'objet parent du modèle WSH. Il permet de gérer la création (instanciation) et la destruction des objets du modèle WSH. Voici un récapitulatif des propriétés et méthodes de l'objet WScript : Objet... www.commentcamarche.net/contents/vbscript/vbs-wscript.php3
Java - Les objetsLa création d'objets Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres... www.commentcamarche.net/contents/java/javaobjet.php3