Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calendar et java.sql.date

utilisation d'une requete sql

    26 mai 2012 à 23:01:52

    Je cherche comment rendre le type Calendar et java.sql.date compatible afin de comparer la date d'aujourd'hui avec les dates d'anniversaire contenues dans une table derby.

    Afin d'ameliorer ce code.


    import java.sql.*;import java.util.*;import java.util.Calendar; import java.util.GregorianCalendar;
    public class EssaiAnnivDB {
    	
    	public static void main (String args[]) throws ClassNotFoundException, SQLException
    	{   try {
    			Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    		}
    		catch (Exception e)
    		{	System.out.println("erreur class"); }
    		ResultSet res;
    		Connection c = DriverManager.getConnection("jdbc:derby:anniversairedb");
    		Statement stmt = c.createStatement();
    		res = stmt.executeQuery("SELECT nom,prenom,date FROM Personne");
    		java.sql.Date jourCourant = new java.sql.Date(System.currentTimeMillis()) ;
    		java.sql.Date dateAnniv = new java.sql.Date(System.currentTimeMillis());
    		String nom,prenom;
    		GregorianCalendar calendar =new java.util.GregorianCalendar();
    		//GregorianCalendar cdateAnniv =new java.util.GregorianCalendar(dateAnniv);
    		while (res.next()) {
    			nom=res.getString(1) ;
    			prenom=res.getString(2);
    			dateAnniv=res.getDate(3);
    			System.out.println(nom+' '+prenom+' '+dateAnniv);
    			if ((jourCourant.getMonth()==dateAnniv.getMonth())&(dateAnniv.getDay()==jourCourant.getDay())) { 
    				System.out.println("Anniversaire de "+nom+" "+prenom+"aujourd'hui");
    				}
    		}
    	//java.util.Date jourCourant= new java.util.Date();
    	System.out.println(jourCourant);
    	
    	}
    	
    	
    }
    


    je sais ce code est loin d’être parfait, je ne traite pas toutes les exceptions mais c'est pour donner une idée.
    Ma question vient surtout du fait que getMonth() est "deprecated"

    Faut t il créer une classe nouvelle afin de permettre la conversion de date entre sql et calendar

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2012 à 23:16:10

      Pourquoi n'utilises tu pas java.util.Date à la place des java.sql.Date? Sinon, tu peux caster tes java.sql.Date en util comme ceci
      java.sql.Date sqlDate =  new java.sql.Date(GregorianCalendar.getInstance().getTime());
      

      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2012 à 18:45:19

        ((jourCourant.getMonth()==dateAnniv.getMonth())&(dateAnniv.getDay()==jourCourant.getDay()))
        


        Le code posté précédemment compile mais il m'indique les méthodes getMonth() et getDay() sont deprecated.

        Ma question est qu'est qui remplace ces méthodes ?

        ou comment faut il proceder maintenant pour obtenir le mois et le jour d'une date type java.sql.Date/java.util;Date ?

        merci d'avance.
        • Partager sur Facebook
        • Partager sur Twitter
          27 mai 2012 à 18:55:20

          dateAnniv=res.getDate(3);
          


          si dateAnniv est un calendar est ce que ce code compile si res est de type ResultSet ?
          • Partager sur Facebook
          • Partager sur Twitter

          Calendar et java.sql.date

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown