IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

comment faire ma requete avec une class conection ?


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut comment faire ma requete avec une class conection ?
    Bonsoir j'essaye de faire une requête simple mais je n'y arrive pas, je débute avec JDBC et postgesql.

    soit la class prenoms

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TABLE prenoms
     
    id_prenom
    prenom
    mon but est de faire une simple requet de lecture et ensuite ajouter une donné dans cette table

    j'utilise cette classe pour me connecté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class Connection {
    	private String url = "jdbc:postgresql://localhost:5432";
    	private String user = "postgres";
    	private String pass  = "postgres";
     
    	private static Connection connexion;
     
    	private Connection()
    	{
    		try
    		{
    			conn = DriverManager.getConnection(url,user,pass);
    			Statement state = connexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    		}
    		catch(SQLException e)
    		{
    			e.printStackTrace();
    		}
    	}
     
    	public static Connection getInstance()
    	{
    		if(conn == null)
    		{
    			new Connexion();
    			System.out.println("INSTANTIATION DE LA CONNEXION SQL !!");
    		}
    		else
    		{
    			System.out.println("CONNEXION EXISTANTE !!");
    		}
    		return connexion;
    	}
     
    }
    voici une classe qui a pour but de fouiller dans la table prenoms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    import java.sql.Connection;
     
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import base.Cnx;
     
    public class VoirPrenom {
    	public static void main (String[] arg)
    	{
    		String query ="SELECT * FROM prenoms";
    	}	
     
    }
    après m'avoir connecté à la bas de donnée, comment je doit m'y prendre pour faire une simple requet de type ("SELECT * FROM prenoms) ?;

    j'ai essayer ceci mais eclipse detecte une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		ResultSet res = Connexion.state.executeQuery(query);
    comment je peut faire pour faire appelle a state ?

    merci d'avance pour la réponse

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    Il faut commencer par lire un peu de doc :
    - La FAQ JDBC
    - un tutoriel jdbc
    - penser en java

    avec tout cela, y a aucune raison pour que tu n'y arrive pas !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    Je te remercie de ta réponse , j'arrive a faire correctement une requete mais seulement en utilisant une seule class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
     
    public class requete {
     
    	public static void main(String[] args) {
     
    		try {
    			Class.forName("org.postgresql.Driver");
     
    			String url = "jdbc:postgresql://localhost:5432/test";
    			String user = "postgres";
    			String passwd = "test";
     
    			Connection conn = DriverManager.getConnection(url, user, passwd);
     
    			//Création d'un objet Statement
    			Statement state = conn.createStatement();
    			//L'objet ResultSet contient le résultat de la requête SQL
    			ResultSet result = state.executeQuery("SELECT * FROM prenoms");
    			//On récupère les MetaData
    			ResultSetMetaData resultMeta = result.getMetaData();
     
    			System.out.println("\n**********************************");
     
    			while(result.next()){			
    				for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
    					System.out.print("\t" + result.getObject(i).toString() + "\t |");
     
    				System.out.println("\n---------------------------------");
     
    			}
     
     
                            result.close();
                            state.close();
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}		
    	}
    }
    mais dès que j'essaye d'utiliser la classe singleton je n'y arrive pas,
    sinon je vais devoir mettre a chacune de mes classe ce script de connection

    Si je fait la même chose sauf que j'utilisation la class connection j'ai tout plein d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
     
    public class requete {
     
    	public static void main(String[] args) {
     
    		try {
     
    			Statement state = Connexion.getInstance().createStatement(); //appelle de la methode static get instance
    			//L'objet ResultSet contient le résultat de la requête SQL
    			ResultSet result = state.executeQuery("SELECT * FROM prenoms");
    			//On récupère les MetaData
    			ResultSetMetaData resultMeta = result.getMetaData();
     
    			System.out.println("\n**********************************");
     
    			while(result.next()){			
    				for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
    					System.out.print("\t" + result.getObject(i).toString() + "\t |");
     
    				System.out.println("\n---------------------------------");
     
    			}
     
     
                            result.close();
                            state.close();
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
    		}		
    	}
    }

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Connection (java.sql.Connection) est une interface pas une classe, donc il n'y a pas de getInstance !

    Tu utilises probablement une autre classe Connection qui ne fait pas partie de JDBC.

    Si par soucie de performance tu ne souhaites pas récréer à chaque fois la connexion alors tu peux utiliser un pool de connexion.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    je te remercie beaucoup de m'avoir aider, je suis finalement arrivé a mes fin,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.Statement;
     
     
    import bdd.ConnecterBase;
     
     
    public class Test {
     
     
    	public Test(){
     
    		try {
    			Statement state = ConnecterBase.getInstance()
    											.createStatement(
    														ResultSet.TYPE_SCROLL_INSENSITIVE, 
    														ResultSet.CONCUR_READ_ONLY
    											);
    			//On exécute la requête
    			ResultSet result = state.executeQuery("SELECT  * FROM prenoms");
    			ResultSetMetaData resultMeta = result.getMetaData();
    			while(result.next()){		
     
    				for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
    					System.out.print("\t" + result.getObject(i).toString() + "\t |");
     
    				System.out.println("\n---------------------------------");
     
    			}
     
     
    		} catch (Exception e) {
    			e.printStackTrace();
     
    		}	
    	}
     
    }
    la magie ça fonctionne , maintenant je vais éviter de mettre a chacune de mes classes un bout de programme de la base de donnée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/11/2009, 11h14
  2. Réponses: 7
    Dernier message: 05/12/2008, 09h26
  3. Réponses: 3
    Dernier message: 03/10/2007, 00h59
  4. comment faire un sphère avec une texture ?
    Par fregate dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/09/2005, 03h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo