Bonjour à tous,

Je ne développe jamais en java, j'ai juste bidouillé des bouts de code pour réussir à créer des reports avec JasperReport. J'ai juste fait du C / C++ il y a quelques années.

Problème, j'ai des erreurs et je ne suis pas assez fort malgré tout pour arriver à toutes les surmonter avec google, bien que je suis parti de loin au début.

Voici les erreurs :

certif.java:45: warning: Map is a raw type. References to generic type Map<K,V> should be parameterized
Map parameters = new HashMap();
^^^
certif.java:45: warning: HashMap is a raw type. References to generic type HashMap<K,V> should be parameterized
Map parameters = new HashMap();
^^^^^^^
certif.java:46: warning: Type safety: The method put(Object, Object) belongs to the raw type Map. References to generic type Map<K,V> should be parameterized
parameters.put("user",user);
^^^^^^^^^^^^^^^^^^^^^^^^^^^
certif.java:47: warning: Type safety: The method put(Object, Object) belongs to the raw type Map. References to generic type Map<K,V> should be parameterized
parameters.put("titre",title);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
certif.java:48: warning: Type safety: The method put(Object, Object) belongs to the raw type Map. References to generic type Map<K,V> should be parameterized
parameters.put("date_ex",date_ex);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
certif.java:52: warning: The local variable jasperPrint is never read
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
^^^^^^^^^^^
6 problems (6 warnings)


Voici le code :
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
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
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.sql.*;
 
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
import com.mysql.jdbc.Driver;
 
public class certif {
 
    public static void main(String[] args) {
 
        // - Paramètres de connexion à la base de données
        String url = "jdbc:mysql://localhost/chamilo_main";
        String login = "root";
        String password = "********";
        Connection connection = null;
 
        try {
            // - Connexion à la base
            Driver monDriver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(monDriver);
            connection = DriverManager.getConnection(url, login, password);
 
            Statement s = connection.createStatement ();
            s.executeQuery ("SELECT CONCAT(firstname,' ',lastname), ce.title, te.exe_result ,te.exe_weighting, te.exe_date, te.exe_id, user.email, user.user_id FROM `chamilo_mabase`.`quiz` AS ce , `chamilo_main`.`track_e_exercices` AS te, `chamilo_main`.`user` AS user,`chamilo_main`.`course_rel_user` AS cuser WHERE  user.user_id=cuser.user_id AND cuser.relation_type<>1 AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND cuser.status<>1  AND ce.session_id = 0  AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0 AND cuser.course_code=te.exe_cours_id ORDER BY te.exe_cours_id ASC, ce.title ASC, te.exe_date ASC");
 
            ResultSet rs = s.getResultSet ();
            int count = 0;
            while (rs.next ())
            {
                String user = rs.getString ("CONCAT(firstname,' ',lastname)");
                String title = rs.getString ("title");
                String date_ex = rs.getString ("exe_date");
                Map parameters = new HashMap();
                parameters.put("user",user);
                parameters.put("titre",title);
                parameters.put("date_ex",date_ex);
 
                JasperDesign jasperDesign = JRXmlLoader.load("modele.jrxml");
		JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection);
		JasperExportManager.exportReportToPdfFile(user + " " + date_ex + ".pdf");
                ++count;
   	    }
            rs.close ();
            s.close ();
            System.out.println ("ok");
        } catch (JRException e) {
 
            e.printStackTrace();
        } catch (SQLException e) {
 
            e.printStackTrace();
        } finally {
            try {
                 connection.close();
                } catch (SQLException e) {
 
                        e.printStackTrace();
                }
        }
 
    }
}
La commande exécutée sur environnement linux debian avec GCJ :
- gcj --classpath="./jasperreports-2.0.3.jar:mysql-connector-java-3.1.11-bin.jar" certif.java


Ce que le code source est censé faire :
- se connecter à la base mySQL
- récupère un ensemble de ligne correspondant à des personnes, avec leur résultats qu'ils ont obtenus sur un quizz (ex : LULU LALA - Sécurité des données le QUIZZ - 3/5)
- pour chaque ligne, créé un report JasperReport en envoyant les paramètres (nom prénom du gars, quizz sur lequel il a travaillé, et la date de l'obtention) et exporter le tout en PDF.

Problème : quand je l'exécute il ne se passe rien. Aucun PDF.

Pourriez-vous m'aiguiller s'il vous plait ? Merci !