/** * Programme de test sur l'utilisation de l'API JDBC pour communiquer avec le SGBD postgres * Avant de tester le programme, il faut positionner le driver approprié * (postgresql-8.3-603.jdbc3.jar pour java 1.5 et * postgresql-8.3-603.jdbc4.jar pour java 1.6) * dans le répertoire "jre\lib\ext" de votre installation java * ou alors ajouter le chemin d'accès à votre CLASSPATH * export CLASSPATH = .:/home/egrandch/JDBC/postgresql-8.3-603.jdbc4.jar par exemple * la base de donnée mise en place pour le projet * est sur le serveur : tarpon.univ-ag.fr * a pour nom : projetlicence * a pour utilisateur : svr_apache * avec pour mot de passe : svr_apache * l'une a table créée dans cette base * s'appelle : joueur * a pour champs : "ident" qui est un int, "pseudo" qui est un char(50), "pass" qui est un char(10), "email" qui et un char(100) et "score" qui est un integer. * pour utiliser ce programme de test vous pouvez soit faire un insert dans la table * soit faire un select (cf Usage) * * * @author Enguerran Grandchamp * @version $Date$ **/ // Importation des API import java.net.URL; import java.sql.*; import java.lang.Runtime; import java.util.*; public class TestJDBC_JEU { /** * Affiche l'usage du programme **/ public static void Usage() { System.out.println("Usage:deux possibilités, en insertion ou en sélection"); System.out.println("Usage:java TestJDBC_JEU insert "); System.out.println("Usage:java TestJDBC_JEU select"); System.out.println("Selectionne le contenu de la table joueur"); } /** * Programme principal * @param argv liste des arguments de la ligne de commande * cf Usage() **/ public static void main(String argv[]) { if ((argv.length != 1) && (argv.length != 4) ) { Usage(); } else { // l'url de connexion // Elle doit avoir la syntaxe suivante: // jdbc:sgbd://serveur/base String url = "jdbc:postgresql://tarpon/projetlicence"; String username = "svr_apache" ; // Le nom de l'utilisateur String password = "svr_apache" ; // Le mot de passe de l'utilisateur Connection db; // La connexion vers la base Statement sql; // Une requete SQL DatabaseMetaData dbmd; // Les infos sur le drivers // Chargement des drivers pour postgres System.out.print("Chargement des drivers ..."); try { Class.forName("org.postgresql.Driver");//load the driver sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Download complete"); } catch (ClassNotFoundException cnfe) { System.err.println("Couldn't find driver class:"); cnfe.printStackTrace(); System.exit(1); } // Connexion vers la base de donnée try { System.out.println("Connexion vers la base ..."); db = DriverManager.getConnection(url,username,password); // Affichage des informations sur le SGBD System.out.println("Affichage des infos sur la base ..."); dbmd = db.getMetaData(); //get MetaData to confirm connection System.out.println("Connection to "+dbmd.getDatabaseProductName()+" "+ dbmd.getDatabaseProductVersion()+" successful.\n"); // Création d'une requete Statement st = db.createStatement(); ResultSet rs; if (argv[0].equals("insert")) { // On réalise une insertion // Exécution d'une requête // Récupération de la valeur max de num rs = st.executeQuery("select max(ident) from joueur"); rs.next(); int num = rs.getInt(1); num++; System.out.println("num="+num); st.executeUpdate("insert into joueur values("+num+",'" + argv[1]+ "','" + argv[2] + "','" + argv[3] +"','0')"); System.out.println("Insertion effectuée"); } else { rs = st.executeQuery("SELECT * from joueur"); // Affichage du résultat while (rs.next()) { // Retourne la valeur de la première colonne si celle-ci est un entier System.out.print(rs.getInt(1)+" "); // Retourne la valeur de la deuxième colonne si celle-ci est une chaine de caractère System.out.print(rs.getString(2)+" "); // Retourne la valeur de la troisième colonne si celle-ci est une chaine de caractère System.out.print(rs.getString(3)+" "); // Retourne la valeur de la quatrième colonne si celle-ci est une chaine de caractère System.out.print(rs.getString(4)+" "); // Retourne la valeur de la cinquième colonne si celle-ci est un entier System.out.println(rs.getInt(5)+" "); } } // Fermeture de la connexion vers la base de donnée db.close(); } catch (SQLException se) { System.out.println("Couldn't connect: "); se.printStackTrace(); System.exit(1); } } } // End Main } // End TestJDBC_JEU