// export CLASSPATH=$CLASSPATH:~/lib/jdbc/lib/classes111.zip // export CLASSPATH=$CLASSPATH:/opt/oracle/app/oracle/product/7.3.2/jdbc/classes111.zip import java.sql.*; public class TablesBD { public static Connection etablirConnexion(String pilote, String url, String uid, String mdp) { Connection connexion = null; try { Class.forName(pilote); } catch(Exception e){ System.out.println("Impossible de charger le pilote"); return null; } try { connexion = DriverManager.getConnection(url, uid, mdp); System.out.println("Connexion etablie."); } catch(SQLException e){ System.out.println("Impossible d'etablir la connexion"); return null; } return connexion; } public static void fermerConnexion(Connection c) { try { c.close(); System.out.println("Connexion terminee"); } catch(SQLException e){ System.out.println("Impossible de fermer la connexion... Tant pis"); return; } } public static void creerTable(Connection c, String table, String champs) { try { Statement s = c.createStatement(); s.execute("create table " + table + "(" + champs + ")"); System.out.println("Creation reussie"); } catch(SQLException e){ System.out.println("Impossible de creer la table"); System.out.println("create table " + table + "(" + champs + ")"); return; } } public static void detruireTable(Connection c, String table) { try { Statement s = c.createStatement(); s.execute("drop table " + table); System.out.println("Destruction reussie"); } catch(SQLException e){ System.out.println("Impossible de detruire la table"); return; } } public static void afficherTablesVues(Connection c) { TablesBD.traiterRequete(c, "SELECT * FROM USER_CATALOG"); // try { // String[] types = {"TABLE", "VIEW"}; // DatabaseMetaData metaData = c.getMetaData(); // ResultSet res = metaData.getTables("CAT","", "%", types); // TablesBD.sortieResultSet(res); // } // catch(SQLException e){ // System.out.println("Impossible d'obtenir les tables et les vues"); // e.printStackTrace(); // return; // } } private static void sortieFormatee(String st, int format){ int taille; if (st != null) { taille = format - st.length(); System.out.print(st); } else taille = format; for (int j=0; j < taille; j++) System.out.print(" "); } private static void sortieResultSet(ResultSet res){ try { ResultSetMetaData metaRes = res.getMetaData(); int cols = metaRes.getColumnCount(); for (int i=1; i <= cols; i++) TablesBD.sortieFormatee(metaRes.getColumnLabel(i), metaRes.getColumnDisplaySize(i)); System.out.println(); while(res.next()){ for (int i=1; i <= cols; i++) TablesBD.sortieFormatee(res.getObject(i).toString(), metaRes.getColumnDisplaySize(i)); System.out.println(); } } catch(SQLException e){ System.out.println("Impossible d'afficher le resultat"); e.printStackTrace(); return; } } public static void traiterRequete(Connection c, String requete) { try { Statement s = c.createStatement(); if (s.execute(requete)) { ResultSet res = s.getResultSet(); TablesBD.sortieResultSet(res); } else { int res = s.getUpdateCount(); System.out.println("Modification reussie de "+res+" lignes."); } } catch(SQLException e){ System.out.println("Impossible de traiter la requete"); return; } } }