Erreur Java - Connexion MySQL - JasperReport
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:
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 !