Requete SQl et JAVA
Résolu
xyeuh
Messages postés
54
Date d'inscription
Statut
Membre
Dernière intervention
-
xyeuh Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
xyeuh Messages postés 54 Date d'inscription Statut Membre Dernière intervention -
Bonjour les amis.
voila ma question est simple:
Comment ecrire le resultat d'une requete sql dans un fichier html en java ?
Merci d'avance pour vos Réponses,
Cordialement Xyeuh.
voila ma question est simple:
Comment ecrire le resultat d'une requete sql dans un fichier html en java ?
Merci d'avance pour vos Réponses,
Cordialement Xyeuh.
A voir également:
- Requete SQl et JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Avec une <table> par exemple. Je n'ai pas vérifié mais voici ce que ça pourrait donner :
public String toHtml(ResultSet result) throws SQLException { StringBuilder sb = new StringBuilder("<table>"); ResultSetMetaData data = result.getMetaData(); int n = data.getColumnCount(); sb.append("<tr>\n"); for (int i=0; i<n; i++) sb.append("\t<th>").append(data.getColumnName(i)).append("</th>\n>"); sb.append("</tr>\n"); while (result.next()) { sb.append("<tr>\n"); for (int i=0; i<n; i++) sb.append("<td>").append(result.getObject(i)).append("</td>\n"); sb.append("</tr>\n"); } return sb.append("</table>\n").toString(); }
Merci pour votre réponse
cependant je ne comprend pas complétement votre code,
il faut savoir que je souhaite renvoyer le résultat d'une requete SQL faite en java dans la page HTML.
cependant je ne comprend pas complétement votre code,
il faut savoir que je souhaite renvoyer le résultat d'une requete SQL faite en java dans la page HTML.
Le résultat d'une requête SQL c'est un ResultSet, c'est à dire un tableau avec des colonnes fixées et autant de lignes que de résultats. La méthode la plus simple d'afficher un tableau en HTML c'est les <table>. Ici mon code convertit un ResultSet en un String qui correspond au code HTML de présentation des résultats obtenus. Tu n'as plus qu'à mettre ce code généré dans ta page HTML à l'endroit où tu veux.
Encore Merci pour votre réponse,
J'ai donc essayer ce que vous m'avait dit, mais j'obtiens toujours une erreur
que je ne comprend pas je vous poste donc mon code:
CODE Generation_Html.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.File;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class Generation_Html
{
public static void run()
{
Connection con = null;
Statement st = null;
ResultSet rs = null;
//connexion à la base de donnée
String url = "jdbc:mysql://localhost:3306/METEO";
String user = "root";
String password = "pass";
//requete SQL
String sql = "SELECT * FROM TEMPERATURE ";
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery(sql);
/***********************************/
/**************************************/
}
catch (SQLException ex) {
System.out.println("PB");
ex.printStackTrace();// traitement
} finally { // fermeture de la connexion
}
}
public String toHtml(ResultSet rs) throws SQLException
{
StringBuilder sb = new StringBuilder("<table>");
ResultSetMetaData data = rs.getMetaData();
int n = data.getColumnCount();
sb.append("<tr>\n");
for (int i=0; i<n; i++)
sb.append("\t<th>").append(data.getColumnName(i)).append("</th>\n>");
sb.append("</tr>\n");
while (rs.next())
{
sb.append("<tr>\n");
for (int i=0; i<n; i++)
sb.append("<td>").append(rs.getObject(i)).append("</td>\n");
sb.append("</tr>\n");
}
return sb.append("</table>\n").toString();
try
{
File monFichier = new File("/home/arnaud/workspace/blabla/bin/Meteo.html");
System.out.println("/home/arnaud/workspace/ProjetServeur/bin/Meteo.html existe ? "+(monFichier.exists()?"OUI":"NON"));
//ecriture dans un le fichier Meteo.html du résultat de la requete SQL.
BufferedWriter ecrivain = new BufferedWriter(new FileWriter(monFichier, false));
PrintWriter ecr = new PrintWriter(new BufferedWriter(new FileWriter(monFichier, false)));
/*ecrivain.write("<html><head><title>Web Server in JAVA</title></head><body><center><h1>Meteo</h1></center><a href=index.html>Home</a><br><br><?php while($donnees = mysql_fetch_array(rs)){?><table border='1'align='center'><tr><td id='case' size='500'>Ville</td><td><?php echo $donnees['Ville'];?></td></tr><tr><td id='case' size='100'>Temperature</td><td><?php echo $donnees['Temperature'];?></td></tr></table></body></html>");*/
/*int f = 2;*/
ecr.println(sb);
ecrivain.write(sb);
ecrivain.flush();
ecrivain.close();
BufferedReader lecteur=new BufferedReader(new FileReader(monFichier));
String content = lecteur.readLine();
while(content != null)
{
System.out.println(content);
content = lecteur.readLine();
}
lecteur.close();
}
catch(java.io.IOException ioe)
{
System.out.println(ioe);
}
}
}
CODE Run_Html.java
// Permet le lancement de la génération du fichier Meteo.html
public class Run_Html
{
public static void main(String[] args)
{
Generation_Html.run();
}
}
l'erreur étant que au niveau du ecrivain.write(sb); éclipse me dit qu'il attend un entier et non un String. (dans Generation_Html.java).
Cordialement Xyeuh
J'ai donc essayer ce que vous m'avait dit, mais j'obtiens toujours une erreur
que je ne comprend pas je vous poste donc mon code:
CODE Generation_Html.java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.File;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class Generation_Html
{
public static void run()
{
Connection con = null;
Statement st = null;
ResultSet rs = null;
//connexion à la base de donnée
String url = "jdbc:mysql://localhost:3306/METEO";
String user = "root";
String password = "pass";
//requete SQL
String sql = "SELECT * FROM TEMPERATURE ";
try {
con = DriverManager.getConnection(url, user, password);
st = con.createStatement();
rs = st.executeQuery(sql);
/***********************************/
/**************************************/
}
catch (SQLException ex) {
System.out.println("PB");
ex.printStackTrace();// traitement
} finally { // fermeture de la connexion
}
}
public String toHtml(ResultSet rs) throws SQLException
{
StringBuilder sb = new StringBuilder("<table>");
ResultSetMetaData data = rs.getMetaData();
int n = data.getColumnCount();
sb.append("<tr>\n");
for (int i=0; i<n; i++)
sb.append("\t<th>").append(data.getColumnName(i)).append("</th>\n>");
sb.append("</tr>\n");
while (rs.next())
{
sb.append("<tr>\n");
for (int i=0; i<n; i++)
sb.append("<td>").append(rs.getObject(i)).append("</td>\n");
sb.append("</tr>\n");
}
return sb.append("</table>\n").toString();
try
{
File monFichier = new File("/home/arnaud/workspace/blabla/bin/Meteo.html");
System.out.println("/home/arnaud/workspace/ProjetServeur/bin/Meteo.html existe ? "+(monFichier.exists()?"OUI":"NON"));
//ecriture dans un le fichier Meteo.html du résultat de la requete SQL.
BufferedWriter ecrivain = new BufferedWriter(new FileWriter(monFichier, false));
PrintWriter ecr = new PrintWriter(new BufferedWriter(new FileWriter(monFichier, false)));
/*ecrivain.write("<html><head><title>Web Server in JAVA</title></head><body><center><h1>Meteo</h1></center><a href=index.html>Home</a><br><br><?php while($donnees = mysql_fetch_array(rs)){?><table border='1'align='center'><tr><td id='case' size='500'>Ville</td><td><?php echo $donnees['Ville'];?></td></tr><tr><td id='case' size='100'>Temperature</td><td><?php echo $donnees['Temperature'];?></td></tr></table></body></html>");*/
/*int f = 2;*/
ecr.println(sb);
ecrivain.write(sb);
ecrivain.flush();
ecrivain.close();
BufferedReader lecteur=new BufferedReader(new FileReader(monFichier));
String content = lecteur.readLine();
while(content != null)
{
System.out.println(content);
content = lecteur.readLine();
}
lecteur.close();
}
catch(java.io.IOException ioe)
{
System.out.println(ioe);
}
}
}
CODE Run_Html.java
// Permet le lancement de la génération du fichier Meteo.html
public class Run_Html
{
public static void main(String[] args)
{
Generation_Html.run();
}
}
l'erreur étant que au niveau du ecrivain.write(sb); éclipse me dit qu'il attend un entier et non un String. (dans Generation_Html.java).
Cordialement Xyeuh
C'est parce que tu utilises mon code n'importe comment !
Là il faudrait carrément revoir les bases de comment on utilise une méthode...
Je t'ai donné une méthode indépendante, son code ne doit pas être copier/coller en plein milieu du code d'une autre méthode ! Elle doit être appelée au moment opportun en lui passant des paramètres...
Là il faudrait carrément revoir les bases de comment on utilise une méthode...
Je t'ai donné une méthode indépendante, son code ne doit pas être copier/coller en plein milieu du code d'une autre méthode ! Elle doit être appelée au moment opportun en lui passant des paramètres...
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.File; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; class Generation_Html { public static String toHtml(ResultSet rs) throws SQLException { StringBuilder sb = new StringBuilder("<table>"); ResultSetMetaData data = rs.getMetaData(); int n = data.getColumnCount(); sb.append("<tr>\n"); for (int i=0; i<n; i++) sb.append("\t<th>").append(data.getColumnName(i)).append("</th>\n>"); sb.append("</tr>\n"); while (rs.next()) { sb.append("<tr>\n"); for (int i=0; i<n; i++) sb.append("<td>").append(rs.getObject(i)).append("</td>\n"); sb.append("</tr>\n"); } return sb.append("</table>\n").toString(); } public static void run() { Connection con = null; Statement st = null; ResultSet rs = null; //connexion à la base de donnée String url = "jdbc:mysql://localhost:3306/METEO"; String user = "root"; String password = "pass"; //requete SQL String sql = "SELECT * FROM TEMPERATURE "; try { con = DriverManager.getConnection(url, user, password); st = con.createStatement(); rs = st.executeQuery(sql); } catch (SQLException ex) { System.out.println("PB"); ex.printStackTrace();// traitement } try { File monFichier = new File("/home/arnaud/workspace/blabla/bin/Meteo.html"); System.out.println("/home/arnaud/workspace/ProjetServeur/bin/Meteo.html existe ? "+(monFichier.exists()?"OUI":"NON")); //ecriture dans un le fichier Meteo.html du résultat de la requete SQL. BufferedWriter ecrivain = new BufferedWriter(new FileWriter(monFichier, false)); PrintWriter ecr = new PrintWriter(new BufferedWriter(new FileWriter(monFichier, false))); /*ecrivain.write("<html><head><title>Web Server in JAVA</title></head><body><center><h1>Meteo</h1></center><a href=index.html>Home</a><br><br><?php while($donnees = mysql_fetch_array(rs)){?><table border='1'align='center'><tr><td id='case' size='500'>Ville</td><td><?php echo $donnees['Ville'];?></td></tr><tr><td id='case' size='100'>Temperature</td><td><?php echo $donnees['Temperature'];?></td></tr></table></body></html>");*/ /*int f = 2;*/ String str = toHtml(rs); ecr.println(str); ecrivain.write(str); ecrivain.flush(); ecrivain.close(); BufferedReader lecteur=new BufferedReader(new FileReader(monFichier)); String content = lecteur.readLine(); while(content != null) { System.out.println(content); content = lecteur.readLine(); } lecteur.close(); ecr.close(); } catch(java.io.IOException ioe) { System.out.println(ioe); } catch (SQLException e) { e.printStackTrace(); } } } // Permet le lancement de la génération du fichier Meteo.html public class Run_Html { public static void main(String[] args) { Generation_Html.run(); } }
Encore merci pour votre réponse et temps consacré a mon problème.
Mais lorsque je compile votre code j'obtiens l'erreur suivante:
/home/arnaud/workspace/ProjetServeur/bin/Meteo.html existe ? OUI
java.sql.SQLException: Column index out of range.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetMetaData.getField(ResultSetMetaData.java:405)
at com.mysql.jdbc.ResultSetMetaData.getColumnName(ResultSetMetaData.java:256)
at Generation_Html.toHtml(Generation_Html.java:25)
at Generation_Html.run(Generation_Html.java:78)
at Run_Html.main(Run_Html.java:7)
Cordialement Xyeuh.
Mais lorsque je compile votre code j'obtiens l'erreur suivante:
/home/arnaud/workspace/ProjetServeur/bin/Meteo.html existe ? OUI
java.sql.SQLException: Column index out of range.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ResultSetMetaData.getField(ResultSetMetaData.java:405)
at com.mysql.jdbc.ResultSetMetaData.getColumnName(ResultSetMetaData.java:256)
at Generation_Html.toHtml(Generation_Html.java:25)
at Generation_Html.run(Generation_Html.java:78)
at Run_Html.main(Run_Html.java:7)
Cordialement Xyeuh.