Requête Sql dans une page JSP

Résolu/Fermé
Joyeux Lurrons - 7 mars 2008 à 10:23
 cat - 21 mars 2008 à 14:44
Bonjour,

Je souhaiterais faire une mise à jour d'une liste déroulante dans ma page JSP. J'entre donc le code suivant :

<p align="center"> <font face="Broadway"> <select name="codetype">

<%Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement stmt
ResultSet rs = stmt.executeQuery("SELECT libelle, codetype FROM type;");
rs.last();
int nb = rs.getRow();
rs.beforeFirst();
int i = 1;
while(i<=nb){
rs.absolute(i);
String lib=rs.getString(1);
String code=rs.getString(2);
i++;
}%>
<option value="<%= code %>">
<% out.println(lib); %>

</option>
</select>
</font></p>


Mais j'ai des erreurs que je ne comprends pas. Elles se situent sur le Connection et le DriverManager de ma première ligne, sur le Statement de ma 2e ligne, Resultset de ma 3e ligne, code de ma 14e ligne et lib de ma 15e ligne.

Le type d'erreur revenant à chaque fois : Cannot be resolved ou Cannot be resolved to a type...

Need help, j'ai plus beaucoup de cheveux sur le crâne !
Merci d'avance,
Nikko
A voir également:

17 réponses

Joyeux Lurrons
7 mars 2008 à 10:43
Bonjour kij_82,


Je n'ai jamais utilisé de bean. Pourrais-tu m'expliquer comment cela fonctionne ? Par avance merci !
1
Joyeux Lurrons
7 mars 2008 à 11:26
Nope
1
Joyeux Lurrons
7 mars 2008 à 11:36
Je n'ai importer aucun package, je me demandais justement comment on procédait car il n'accepte pas le code suivant : <% import .... ;%>

Je vais essayer avec la syntaxe que tu m'as fait parvenir !
1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:38
J'ai trouvé ça ici si ça peut t'aider pour autre chose :
http://www.lesjsp.com/index.php?option=com_content&task=view&id=33&Itemid=32
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Joyeux Lurrons
7 mars 2008 à 11:38
Cela me retire les erreurs sur les Statement, ResultSet et autres... mais il me reste une erreur que je ne comprends toujours pas :

<%Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT libelle, codetype FROM type;");
rs.last();
int nb=rs.getRow();
rs.beforeFirst();
int i = 1;
while(i<=nb){
rs.absolute(i);
String code = rs.getString(2);
String lib = rs.getString(1);
%><option value="<%code%>"><%out.println(lib);
i++;
}%>

il ne veut pas du "."...
1
Joyeux Lurrons
7 mars 2008 à 12:27
Je te remercie beaucoup de ton aide ! Je t'aurais bien fais une tape dans le dos mais c'est pas possible ^^
1
Joyeux Lurrons
7 mars 2008 à 11:41
Il veut que je mette un ";" à la place du "." ... Je ... Je trouve plus mes mots tellement ca m'énerve ^^
0
Joyeux Lurrons
7 mars 2008 à 11:52
Il faut déclarer "out" pour pouvoir afficher la valeur de de "lib" ? Comment tu déclares "out" ? :x
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:55
Non effectivement autant pour moi il n'est pas nécessaire de le faire ^^
Par contre peut être qu'il ne reconnait pas lib car il est déclaré avant (dans un autre scriptlet)

Si tu fais ça :
<%Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT libelle, codetype FROM type;");
rs.last();
int nb=rs.getRow();
rs.beforeFirst();
int i = 1;
while(i<=nb){
rs.absolute(i);
String code = rs.getString(2);
String lib = rs.getString(1);
out.println("<option value='"+rs.getString(2)+"'>"+rs.getString(1)+"</option>");
i++;
%>


Ca donne quoi ?
0
Joyeux Lurrons
7 mars 2008 à 12:04
Il me met des erreures (dont une que j'ai corrigé)

à cette ligne : <%Class.forName("com.mysql.jdbc.Driver");

il me dit "insert "}" to complete Block"
"insert "}" to complete ClassBody"
"error on this token "}", delete this token"

l'erreur que j'ai corrigé : out.println("<option value='"+rs.getString(2)+"'>"+rs.getString(1)+"</option>"­;);
0
Joyeux Lurrons
7 mars 2008 à 12:26
C'est bon, ca marche ! Voici le code si ça t'intéresse :

<p align="center"> <font face="Broadway">
<select name="codetype">
<%Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/projet", "root", "mysql");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT libelle, codetype FROM type;");
rs.last();
int nb=rs.getRow();
rs.beforeFirst();
int i = 1;
while(i<=nb){
rs.absolute(i);
String code = rs.getString(2);
String lib = rs.getString(1);
%><option value=<%=code%>><%=lib %><%
i++;}
%>
</option></select></font></p>
0
bonjour,
je veut bien savoir toutes les requetes possibles qu'on peut utilser dans un code jsp pour acceder à une base de données mysql.

merci d'avance....
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 10:39
Bonjour,

Ce ne serait pas plus simple de faire ça dans ton code java, de stocker le résultat dans un bean et d'afficher les valeurs dans ta JSP à partir du bean ?
-1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 10:54
Un bean est une classe java qui ne te sert généralement qu'à stocker des informations. Tu as donc des propriétés (privées), avec les accesseurs qui vont avec (getter et setter).

Enfin, avant de me lancer dans des explications, est ce que tu utilise struts, tomcat pour lancer ton application web ?
-1
Joyeux Lurrons
7 mars 2008 à 11:03
J'utilise Tomcat
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:17
Et struts ?
-1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:34
Ha, pas la peine que je me lance dans des explications alors. On peut oublier ma première remarque.

Est-ce que tu as bien inclus les packages nécessaires en début de page jsp.
Par exemple comme ceci :
<%@ page import= "java.sql.*"%>


A priori il doit te manquer certains packages (ceux pour lesquels une erreur t'es signalée)

ps: si tu veux connaitre les packages de tes classes regarde sur l'api java :
https://docs.oracle.com/javase/1.4.2/docs/api/
-1
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
7 mars 2008 à 11:49
Tu n'as pas déclaré la variable 'out', du coup il ne la reconnait pas et donc tu ne peux pas appeler de méthode dessus.
-1