Forum Clubic

Je besion de votre aide

je suis en stage de fin d’etude. mais rencontre des grd probleme sur mon projet en java. je m’explique.
1)j’ai besoin d’appeler plussieurs requete que je viens des creer dans un methode
public String naissances(){
String requete=“SELECT sexe,count() as nombre FROM efesnew.citoyen where typedecla =1 and datedeclafr between datenaissfr and datecreation group by sexe";
String requete="SELECT sexe count(
) as nombre FROM efesnew.citoyen where typedecla=2 group by sexe and select sexe count(*) as nombres FROM efesnew.citoyen where typedecla=1 and datedeclafr between datenaissfr and datecreation group by sexe”;
2)en outre je veux faire une conparaision des champ date. je veux recuperer l’année ou le mois dans une date et les compare avec une autre mois ou année puis aficher le resultat
voila un extrait de mon projet:

public class Naissance extends JFrame{
private String becId=null ;
private int mois =0;
private int annee;
private int periode;
private int[][] naissances ;
private int[][] naissParAgeMere;
private int[][] naissParRang;
private int[][] naissParResidence;
private Vector<Vector> tabLignes;
private Vector nomCols;

public Naissance() {
naissances= new int[3][2];
naissParAgeMere= new int[20][2];
naissParRang= new int[11][2];
naissParResidence= new int[0][2];
Naissance();
}

public void Naissance(){
naissances();

        tabLignes=new Vector<Vector<String>>();
    nomCols=new Vector<String>();
	 int i;
    String requete=naissances();
  
 //String requete="select * from efesnew.citoyen ";
    // String requete="SELECT sexe,count(*) as nombre FROM efesnew.citoyen where typedecla=2 group by sexe";
//String requete="select * from efesnew.citoyen ";  
try {
	Class.forName( "com.mysql.jdbc.Driver" ).newInstance();

	System.out.println(" Bravo,Pilote chargé avec sucess!");
}catch (Exception ex)
{System.out.println("Anomalie de chargement de votre pilote");
	System.out.println(ex.getMessage());
}
	
try{//	 connexion à la base de donn?es 	
	Connection connection = DriverManager.getConnection(
			"jdbc:mysql://localhost/efesnew","root","azerty" );
	
	Statement statement = connection.createStatement();
	ResultSet resultSet =statement.executeQuery(requete);
   
    ResultSetMetaData md = resultSet.getMetaData();
    
    nomCols = new Vector<String>();
    for( i=1; i<=md.getColumnCount (); i++)
         nomCols.add( md.getColumnLabel(i));
    
    while( resultSet.next()) {
      
       Vector<String> ligne=new Vector<String>();
       for(i=1; i<=md.getColumnCount(); i++) {
             String ch=resultSet.getString(i);
             ligne.add(ch);
             }
       tabLignes.add(ligne);
       }
   
	statement.close();
	connection.close();
	
	} 

catch ( SQLException sqlException ) {
System.out.println();
}
for(int j=0;j<nomCols.size();j++)
	System.out.println(nomCols.elementAt(j));
	
JTable table=new JTable(tabLignes,nomCols);
JScrollPane scrollPane = new JScrollPane(table);

getContentPane().add(scrollPane, BorderLayout.CENTER);

//.add(table,BorderLayout.CENTER);

setVisible(true);
pack();

}

public String naissances(){
// dans cette methode je veux creer deux requetes et les appeler dans le fichier général
// cette methode et parail autres autre methode que je veux créer les requetes
// String requete=“SELECT sexe,count() as nombre FROM efesnew.citoyen where typedecla =1 and datedeclafr between datenaissfr and datecreation group by sexe";
String requete="SELECT citoyenid,sexe,count(
) as nombre FROM efesnew.citoyen where typedecla=1 group by sexe”;
/*
}
*/
return requete;
}
public static void main(String [] args)
{
new Naissance();
}
}
donc je pense que vous allez bien maider car la jue suis bloqué et je n’arrive pas avance
LESAVOIR NE VAUX QUE S’IL EST PARTAGE PARTOUT

Je déplace sur le forum Programmation, je pense que ton problème a plus sa place là-bas :wink:

Certes… mais on acceptera le sujet qu’à l’ultime condition qu’il ait un titre explicite, sinon pan! :slight_smile:

Bref, peux tu changer le titre, ou si ça foire, me le donner que je puisse corriger? Merci.

Pour faire simple tu peux déjà regarder sur developpez.com la faq java JBDC pour voir comment effectuer des requêtes sur une base de données à partir de ton code java. Tu dois même pouvoir trouver un tutorial plus complet sur se site

pour la FAQ JDBC : java.developpez.com…

Et je te conseil d’utiliser une requête paramétré puisque tu as des dates à manipuler.

Tu as également la possibilité d’utiliser des solutions que je qualifierais de professionnel tel que le framework Spring qui a une couche d’abstraction pour JDBC ou bien Hibernate qui permet de faire du mapping relationnel objet. Ces solutions sont bien évidement plus lourd à mettre en place mais apporte de sérieuses plus value sur de gros projet.

Autre conseil utilise plutôt des ArrayList à la place des Vector à moins que ton application soit multi-threadé se dont je doute.