Toon posts:

[JSP] foutmelding ondanks juist resultaat

Pagina: 1
Acties:

Verwijderd

Topicstarter
Huidige situatie:
Ik ben voor school bezig met een bestelsysteem waarbij ik JSP gebruik. Daarnaast gebruiken we Access als database.

Probleem:
Het is de bedoeling dat na een INSERT-query 3 waardes in een tabel komen te staan. Dit lukt, maar daarna krijg ik alsnog de volgende foutmelding:

javax.servlet.ServletException: ResultSet is closed

Code:
<%@ include file="beveiliging.jsp"%>
<%@ page language="java" contentType="text/html" import="java.sql.*,java.awt.*" %>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
java.sql.Connection connection = java.sql.DriverManager.getConnection("jdbc:odbc:hd");
java.sql.Statement statement = connection.createStatement();

statement.executeUpdate("INSERT INTO bestelling (eigenaars_id, besteldatum) VALUES ('"+session.getAttribute("user")+"', '15/1/2004')");

ResultSet rs2 = statement.executeQuery("SELECT MAX(bestelling_id) AS bestelling_id1 FROM bestelling");
while(rs2.next()){
String bestel_id = rs2.getString("bestelling_id1");
%>

<table>
<tr>
<td><%out.println(bestel_id);%></td>
</tr>
</table>

<%
java.util.Enumeration attributeNames = session.getAttributeNames();
if(attributeNames != null){
while(attributeNames.hasMoreElements()){
String attributeName = (String)attributeNames.nextElement();
String attributeValue = (String)session.getAttribute(attributeName);
if((attributeName != "paswoord") && (attributeName != "user")){

String Query1 = "INSERT INTO bezit (product_id, aantal, bestelling_id) VALUES ('"+attributeName+"','"+attributeValue+"','"+bestel_id+"')";
statement.executeUpdate(Query1);

}
}
}
}
%>
Het gaat om de laatste query. De rest van de code wordt goed uitgevoerd.

Al geprobeerd:
Ik heb met google al naar de foutmelding gezocht, maar na 5 uur zoeken en uitproberen heb ik nog steeds geen oplossing gevonden.

Ik hoop dat jullie een goude tip hebben.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Ik weet weinig van java, maar het lijkt me dat het statement object van de 2e query nog in gebruik is als je de 3e uitvoert.
Wellicht moet je hier een eigen instantie voor aanmaken.

Who is John Galt?


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Het is al weer veel te lang geleden dat ik jdbc gebruikt heb, maar...
- mag je zomaar een statement hergebruiken?

In ieder geval een tip: in plaats van waarden uit een variable direct in een string te proppen, is er ook een alternatief. Je kan n.m.l. met een speciaal place-holder character (vraagtekensymbool) geen je aan dat daar een parameter moet komen en je voegt de parameters aan het statement toe. Deze worden vervolgens ingevoegd op de plaatsen van de bijbehorende placeholder. Een voordeel is het overzichtelijker maken van je query en minder gerotzooi met quotjes.

[ Voor 60% gewijzigd door Infinitive op 15-01-2004 18:07 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Topicstarter
Toppie, het is gelukt. Ik kon inderdaad niet dat statement hergebruiken.
Bedankt dat jullie zo snel reageerden, nu krijg ik de opdracht waarschijnlijk nog op tijd af ook.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Infinitive schreef op 15 januari 2004 @ 18:01:
In ieder geval een tip: in plaats van waarden uit een variable direct in een string te proppen, is er ook een alternatief. (...)
Aanvulling:
PreparedStatement te verkijgen met Connection.prepareStatement(). Behalve veilige escapes, zorgt dit ook voor precompilation bij drivers die dit ondersteunen (bijv de MSSQL driver of de Oracle driver)

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Je datum invoer gaat verkeerd zodra de dagen < 12 zijn. Als je / gebruikt dan zul je maand/dag/jaar moeten gebruiken, Access raakt er anders maar van in de war. dag-maand-jaar werkt natuurlijk ook.

  • ravenger
  • Registratie: Juli 2001
  • Laatst online: 04-05 16:35
ik zou ook voor het afhandelen van database connecties een aparte bean maken zodat je in je jsp niet hoef te rommelen met SQL statement enz. Gewoon ff een tip :)

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 11:46
dit is inderdaad lelijke code voor in een jsp, en als je dan toch SQL query's wil in je jsp gebruik dan liever de JSTL SQL tab libraries ... maar als je net wil programeren zou ik de sql toch in een aparte klasse plaatsten en met een bean doorgeven naar de view

"Live as if you were to die tomorrow. Learn as if you were to live forever"

Pagina: 1