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
|
String requete = request.getParameter("requete");
if (requete == null) {
requete = "";
}
// Mots dangereux (interdiction de modifier le modele)
String requeteMaj = requete.toLowerCase();
if (requeteMaj.indexOf("delete")!=-1
|| requeteMaj.indexOf("drop")!=-1
|| requeteMaj.indexOf("truncate")!=-1
|| requeteMaj.indexOf("update")!=-1
|| requeteMaj.indexOf("alter")!=-1
|| requeteMaj.indexOf("modify")!=-1)
{
out.println ("Requête refusée.");
out.close ();
return;
}
// Execution de la requete
Connection cnx = null;
ResultSet resultSet = null;
PreparedStatement stmt = null;
int indice;
int numCols = -1;
try {
cnx =ConnectionBuilder.getConnection();
// Requete vers SGBD
stmt = cnx.prepareStatement(requete);
resultSet = stmt.executeQuery();
ResultSetMetaData a_meta = null;
a_meta = resultSet.getMetaData();
numCols = a_meta.getColumnCount();
// récupère les noms & labels des colonnes
out.println(" <table border=1><tr>");
for (int i=1; i<=numCols; i++) {
out.println(" <td class='td1'> <b>"+a_meta.getColumnName(i)+"</b></td>");
}
out.println(" </tr>");
// récupère les données des colonnes
while (resultSet.next()) {
out.println(" <tr>");
for (int i=1; i<=numCols; i++) {
int typeSQL = a_meta.getColumnType(i);
String result;
if (typeSQL==Types.CLOB && request.getParameter("voirCLOB")!=null && request.getParameter("voirCLOB").equals("ok")) {
Clob clob = resultSet.getClob(i);
result = clob.getSubString(1,(int)clob.length());
} else {
result = resultSet.getString(i);
}
out.println(" <td>"+result+"</td>");
}
out.println(" </tr>");
}
out.println ("</table>");
} catch (Exception e) {
out.println (e.getMessage());
} finally {
try { if (resultSet!=null) resultSet.close();} catch(Exception exception) {;};
try { if (stmt!=null) stmt.close();} catch(Exception exception) {;};
ConnectionBuilder.closeConnection(cnx); |
Partager