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 :

parcourir une table mysql en java et calculer les champs


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut parcourir une table mysql en java et calculer les champs
    Bonjour,jai besoin d'aide pour calculer et stocker les valeurs d'une table mysql en java
    la table est la suivante

    Date de debut Date de fin salaire TauxSa TauxEmp Niveau Prime Nom Rubrique Taux rubrique
    1991-11-14 1995-12-31 908 0,2 0,4 cadre 0 Sujétion 0
    1991-11-14 1995-12-31 908 0,2 0,4 cadre 0 HeureSup 0
    1996-01-01 2001-12-31 908 0,2 0,4 cadre 40 Sujétion 0,2
    1996-01-01 2001-12-31 908 0,2 0,3 cadre 53 HeureSup 0,32
    2002-01-01 2005-09-30 908 0,26 0,37 cadre 80 Sujétion 0,41
    2002-01-01 2005-09-30 908 0,28 0,39 cadre 59 HeureSup 0,42


    Nbjour nombre de jour entre Date de debut et Date de fin

    Il s'agit de calculer un résultat selon la formule

    base=Salaire + somme( Nom rubrique X Taux rubrique) +prime
    part salarié=base X TauxSal X Nbjour
    part employeur = base X TauxEmp X Nbjour

    resulta attendu:

    afin de calculer total part employé =somme(part employé)
    total part salarié =somme(part salarié )
    if faut stocker base, part salarié et part employé dans une table mysql avec les taux correspondant à chaque intervalle.Car on besoin dans le programme d'afficher la formule de calcul basée sur base pour justifier le résultat dans un rapport généré.


    j'ai mis le tableau dans un arraylist et je l'ai parcouru en faisant les calculs mais quand le TauxSal ou TauxEmp change il faut sauvegarder le resultat dans un autre tabeau et recommencer avec les nouvelle valeurs.Dons il faut detecter quand TauxSal et TauxEmp changent.
    Exemple de code

    Code java : 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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    ArrayList<tablecalcul> tablecalcullist = new ArrayList<>();
     ArrayList<assiettecalcul> assiettecalcullist = new ArrayList<>();
    // remplissage du tableau tablecalcullist
    while (srs.next()) {
                    tablecalcul tbcal = new tablecalcul();
                    tbcal.setBegin_date2(srs.getDate("Date de debut"));
                    tbcal.setEnd_date2(srs.getDate("Date de fin"));
                    tbcal.setSal_base(srs.getInt("Salaire"));
                    tbcal.setTauxsal(srs.getFloat("TauxSal"));
                    tbcal.setTauxemp(srs.getFloat("TauxEmp"));
                    tbcal.setMontant(srs.getFloat("Prime"));
                    tbcal.setLblrubrique(srs.getString("Nom Rubrique"));
                    tbcal.setTauxrubrique(srs.getFloat("Taux rubrique"));
     
                    tablecalcullist.add(tbcal);
     
                }
     
    // initialisation  des valeurs pour la comparaison
     
                 montant=tablecalcullist.get(0).getMontant();
                 tauxsal=tablecalcullist.get(0).getTauxsal();
                 tauxemp=tablecalcullist.get(0).getTauxemp();
     
                // assiette=tablecalcullist.get(0).getSal_base();
                // assiette de calcul (somme des rubrique)
                 assiette=0;
                 //si=tablecalcullist.get(0).getSal_base();
     
                 si=Integer.parseInt(txt_soldeindiciaire.getText().trim());
                 base=si;
           // assiette de calcul (somme des assiettes)
            calassiette=0; 
     
            ArrayList<AuraitDu> tableauraitdulist = new ArrayList<>();
     
    for (i=0;i<tablecalcullist.size();i++)   { 
    // on verifie si les taux salarié et employeur ont pas changé
    if ((tauxsal == tablecalcullist.get(i).getTauxemp())&&(tauxemp == tablecalcullist.get(i).getTauxsal()))    {
     
      calassiette = (tablecalcullist.get(i).getSal_base()*tablecalcullist.get(i).getTauxrubrique());
      assiette = assiette + calassiette;
                   date1a=tablecalcullist.get(0).getBegin_date2();
                   date2a=tablecalcullist.get(i).getEnd_date2();
     
                                                              } else {
     
     
     
                   jDateChooser1.setDate(tablecalcullist.get(i-1).getdatedebut());
                   jDateChooser2.setDate(tablecalcullist.get(i-1).getdatefin());
     
               long millis1a = jDateChooser1.getCalendar().getTimeInMillis();
               long millis2a = jDateChooser2.getCalendar().getTimeInMillis();
                    // Calculate difference in milliseconds
                    long diffa = millis2a - millis1a;
     
                   // Calculate difference in days
             long diffDaysa = diffa / (24 * 60 * 60 * 1000); 
     
                base=(si+assiette+montant)*12;
               partsalarie=(base*tauxsal*diffDaysa)/36000;
               partemployeur=(base*tauxemp*diffDaysa)/36000;
     
            //reinitialise les valeus de comparaison
     
               tauxsal=tablecalcullist.get(i).getTauxsal();
               tauxemp=tablecalcullist.get(i).getTauxemp(); 
     
                    AuraitDu tbad = new AuraitDu();
     
                    tbad.setDatedebutad(tablecalcullist.get(i-1).getdatedebut());
                   tbad.setDatefinad(tablecalcullist.get(i-1).getdatefin());
                   tbad.setNbjour(diffDaysa);
                    tbad.setSi(tablecalcullist.get(i-1).getSal_base());
                    tbad.setBase(base);
                   tbad.setAr(partsalarie);
                   tbad.setRr(partemployeur);
                  tbad.setTauxagad(tablecalcullist.get(i-1).getTauxsal());
                   tbad.setTauxempad(tablecalcullist.get(i-1).getTauxemp());
     
     
                 tableauraitdulist.add(tbad);
     
     
     
                                                                   }
     
    // insertion dans la base de donnée pour faciliter le calcul avec des intervalles sans variation de taux
     
     String val = txt_matricule.getText();
                   // try{
                   for (i=0;i<tableauraitdulist.size();i++)   { 
                       //JOptionPane.showMessageDialog(null," "+val+ "  "+date1+" "+date2+" "+diffDays+" "+si+" "+eb+" "+rr+" "+ar);
                        String reg= "insert into auraitdu (matricule,datedebutad,datefinad,nbjourad,tauxagad,tauxempad,si,eb,rr,ar) values ('"+val+"','"+tableauraitdulist.get(i).getDatedebutad()+"','"+tableauraitdulist.get(i).getDatefinad()+"','"+tableauraitdulist.get(i).getNbjour()+"','"+tableauraitdulist.get(i).getTauxagad()+"','"+tableauraitdulist.get(i).getTauxempad()+"','"+tableauraitdulist.get(i).getSi()+"','"+tableauraitdulist.get(i).getEb()+"','"+tableauraitdulist.get(i).getRr()+"','"+tableauraitdulist.get(i).getAr()+"' )";
                        //Days.daysBetween(new DateTime(date1), new DateTime(date2)).getDays()
                        pst1=conn.prepareStatement(reg);
                        pst1.execute();
                   }


    Le code n'est pas complet mais je crois que l'idée y est .
    Merci pour votre aide


    --

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 913
    Points
    913
    Billets dans le blog
    5
    Par défaut
    Je pense qu'il y a une idée plus simple: faire les calculs dans la requête SQL.

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/03/2020, 11h26
  2. Remplir une table MySQL à partir d'un code Java
    Par enorad dans le forum JDBC
    Réponses: 3
    Dernier message: 27/02/2020, 10h35
  3. Parcourir et charger un fichier csv dans une table mysql
    Par mouhiiddine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 24/05/2016, 01h08
  4. peupler une table Mysql par un tableau java
    Par serenity_1989 dans le forum Requêtes
    Réponses: 1
    Dernier message: 28/03/2012, 15h39

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