Avatar billede snowflake7 Nybegynder
04. august 2005 - 11:12 Der er 21 kommentarer og
1 løsning

Hvad mangler der her

<%@ page language="java" import="java.sql.*, java.util.*, java.io.*"%>
<%@ include file="resultat.jsp" %>
<%
      String name = request.getParameter("name");
      String klasse = request.getParameter("klasse");

      if( name.getParameter("name") != ""  &&
          klasse.getParameter("klasse").equalsIgnoreCase(""))
          {
            Statement stat = myConn.createStatement();
            // Boolean values are true and false
              int sucessfulUpdate = stat.executeUpdate("INSERT INTO persons (name, phone) "  +
                          "VALUES (" + "\'" + name.getParameter("name")        + "\'," +
                                        "\'" + klasse.getParameter("klasse")      + "\')" );
            stat.close();
              out.println("Rows affected in the database: " + sucessfulUpdate);
          }
          else
          {
            out.println("No phone number given. Nothing inserted");
        }
       
%>


Error(7,22): method getParameter(java.lang.String) not found in class java.lang.String


Hvorfor er det nu lige man får denne fejl?

Det skal lige siges, at det er lang tid siden jeg sidst har programmeret i JSP.
Avatar billede simonvalter Praktikant
04. august 2005 - 11:34 #1
nu er name og klasse jo en String  som du har sat her:
    String name = request.getParameter("name");
      String klasse = request.getParameter("klasse");

På string klassen er der ikke noget der hedder getParameter

så  if( name.getParameter("name") != ""  &&
          klasse.getParameter("klasse").equalsIgnoreCase(""))
skal være

if( name) != ""  &&
          klasse.equalsIgnoreCase(""))

osv.
Avatar billede simonvalter Praktikant
04. august 2005 - 11:35 #2
if( name != ""  &&
          klasse.equalsIgnoreCase(""))
Avatar billede simonvalter Praktikant
04. august 2005 - 11:38 #3
Der er iøvrigt flere problemer.. se her hvordan du bruger jdbc til at snakke med databasen
http://java.sun.com/docs/books/tutorial/jdbc/
Avatar billede snowflake7 Nybegynder
07. august 2005 - 13:02 #4
Hvorfor tror du der er problemer der?
jeg har en jsp med database adgangen:
resultat.jsp

Hvis du vil se den, kan jeg da godt paste den herind??
Avatar billede simonvalter Praktikant
07. august 2005 - 13:45 #5
Jeg kunne bare ikke se at du oprettede en connection. Men hvis du har det er der vel ingen problemer.
Avatar billede snowflake7 Nybegynder
07. august 2005 - 23:42 #6
jo, det er der desværre. jeg bliver ved med at få en besked om den mangler com.mysql.jdbc.Driver.
er det fordi den skal ligge i samme mappe som mit projekt?
Avatar billede simonvalter Praktikant
08. august 2005 - 12:39 #7
driveren skal ligge i WEB-INF/lib for projektet eller common/lib for hele serveren.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 13:01 #8
nu får jeg i hvert fald ikke den med at driveren mangler. tak.
Men nu vil den ikke accepterer mit input?

<%@ page language="java" import="java.util.*, java.io.*"%>
<%@ include file="resultat.jsp" %>
<%
      String name = request.getParameter("name");
      String klasse = request.getParameter("klasse");
      String point = request.getParameter("point");

    if( point != null && name.equalsIgnoreCase("") )
          {
            Statement stat = myConn.createStatement();
            // Boolean values are true and false
              int sucessfulUpdate = stat.executeUpdate("INSERT INTO resulat (name, class, point) "  +
                          "VALUES (" + "\'" + name + "\'," +
                                        "\'" + klasse + "\'"
                                        + "\'" + point  + "\')" );
            stat.close();
              out.println("Rows affected in the database: " + sucessfulUpdate);
          }
          else
          {
            out.println("No input given. Nothing inserted");
        }
       
%>


I Internet Explorer får jeg følgende besked: No input given. Nothing inserted
Hvorfor?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 13:04 #9
<%@ page language="java" import="java.util.*, java.io.*"%>
<%@ include file="resultat.jsp" %>
<%
      String name = request.getParameter("name");
      String klasse = request.getParameter("klasse");
      String point = request.getParameter("point");

    if( point != null && name.equalsIgnoreCase("") )
          {
            Statement stat = myConn.createStatement();
            // Boolean values are true and false
              int sucessfulUpdate = stat.executeUpdate("INSERT INTO resultat (name, class, point) "  +
                          "VALUES (" + "\'" + name + "\'," +
                                        "\'" + klasse + "\'"
                                        + "\'" + point  + "\')" );
            stat.close();
              out.println("Rows affected in the database: " + sucessfulUpdate);
          }
          else
          {
            out.println("No input given. Nothing inserted");
        }
       
%>
Avatar billede snowflake7 Nybegynder
08. august 2005 - 13:05 #10
stadig samme besked?
Avatar billede simonvalter Praktikant
08. august 2005 - 14:25 #11
du siger if name.equalsIgnoreCase("")
det skal det jo helst ikke være.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 14:38 #12
okay har rettet det nu.
Når jeg kører så får jeg denne exception:
java.sql.SQLException: Column count doesn't match value count at row 1    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)    at com.mysql.jdbc.Connection.execSQL(Connection.java:2972)    at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:929)    at _sqlInsert_2e_jsp._jspService(sqlInsert.jsp:12)    [/sqlInsert.jsp]
Avatar billede simonvalter Praktikant
08. august 2005 - 15:01 #13
Fejlen siger der er noget galt med dit sql statement.
Prøv og kør denne og kig på den,

    String klasse = "test",name = "test", point = "test";

        System.out.println("INSERT INTO resulat (name, class, point) " +
                "VALUES (" + "\'" + name + "\'," +
                "\'" + klasse + "\'"
                + "\'" + point + "\')");

Det er iøvrigt en god ide at bruge prepared statement istedet.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:12 #14
samme fejl igen.
Hvordan ville det se ud, hvis man bruger prepared statement i stedet?
Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:21 #15
05/08/08 16:16:18 INSERT INTO resulat (name, class, point) VALUES ('test','test''test')


output fra server.
Avatar billede simonvalter Praktikant
08. august 2005 - 16:23 #16
ja og du kan ikke se fejlen?
Det er din sql statement den er galt med

('test','test''test') der mangler 2x ,
Prepared statement kan du læse om i det link jeg smed tidligere.
Avatar billede simonvalter Praktikant
08. august 2005 - 16:23 #17
1x , mener jeg.
Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:41 #18
tak simon nu virker det.;-)

Vil du hjælpe mig med et andet problem?

Jeg vil gerne gøre det sådan, at man kan regne en gennemsnit af point ud, for hver person og så vise det i en tabel.
Jeg har lavet en jsp side som hvis indholdet af databasen lige nu.

<%@ page contentType="text/html; charset=windows-1251" %>
<%@ include file="resultat.jsp" %>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
  <head>
    <title>sqlSelect</title>
  </head>
  <body>
    <%
   
      Statement stat = myConn.createStatement();
      ResultSet r = stat.executeQuery( "SELECT * FROM resultat" );

      out.println("<table border=\"1\" spaceing=\"1\">");
      out.println("<th>Navn</th><th>Klasse</th><th>Point</th>");
     
      while(r.next())
      {
        out.println("<tr>"                          +
                      "<td>" + r.getString("name")  + "</td>" +
                      "<td>" + r.getString("class") + "</td>" +
                      "<td>" + r.getInt("point")    + "</td>" +
                    "</tr>");
      }
      out.println("</table>");

    %>
  </body>
</html>
Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:45 #19
På forhånd tak.
du skal nok få point. ;-)
Avatar billede simonvalter Praktikant
08. august 2005 - 16:48 #20
Men hvad er problemet? Jeg beskæftiger mig ikke så meget med html eller jsp så du har nok bedre muligheder hvis du opretter et nyt spørgsmål så flere øjne vil se det.
Avatar billede simonvalter Praktikant
08. august 2005 - 16:48 #21
og et svar
Avatar billede snowflake7 Nybegynder
08. august 2005 - 16:52 #22
okay, det gør jeg så. men tak alligevel.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester