servlet med db
Hej.Jeg har lavet en ganske ganske simpel servlet som skal kunne modtage 3 parametre fra en html side, og lægge disse ned i en database. MEN DET VIRKER IKKE!!!!
Og jeg fatter absolut ikke hvad der er galt. Den kaster en SQL-exception der hvor jeg laver en executeupdate på min sql-sætning, og siger "Handlingen skal bruge en opdaterbar forespørgsel". Dette synes jeg ikke giver nogen mening overhovedet eftersom jeg bruger en executeupdate sammen med en INSERT INTO-SQL sætning.
Men anyways...det er nok bare mig der har misforstået eet eller andet, og jeg håber en af jer lige kan hjælpe mig engang. Her er servlet-koden :
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class fejlreg extends HttpServlet
{
Connection con;
public void init()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:fejlregDB");
} catch (Exception e)
{
e.printStackTrace();
}
}
public void destroy()
{
try
{
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
PrintWriter output;
response.setContentType("text/html");
output=response.getWriter();
String maskine=request.getParameter("maskine");
String lokale=request.getParameter("rum");
String fejlmelding=request.getParameter("beskrivelse");
output.println("Før DB tilgang");
boolean insert=insertIntoDb("INSERT INTO fejlmeldinger (Lokale,Computernr,Fejlmelding) "+
"VALUES ("+maskine+","+lokale+",'"+fejlmelding+"')",output);
StringBuffer buf=new StringBuffer();
if (insert)
{
buf.append("<HTML><HEAD></HEAD><BODY>");
buf.append("Din fejlmelding er nu lagt i databsen med følgende oplysninger :");
buf.append("maskine : "+maskine+"<BR>rum : "+lokale+"<BR>fejlmelding : "+fejlmelding);
buf.append("</BODY></HTML>");
}
else
{
buf.append("<HTML><HEAD></HEAD><BODY>");
buf.append("<BR>Fejl under opdatering af database");
buf.append("</BODY></HTML>");
}
output.println(buf.toString());
output.println("succes2 = "+insert);
output.close();
}
private boolean insertIntoDb(String SQL,PrintWriter out)
{
boolean succes=false;
out.println("<br><br>"+SQL+"<br><br>");
try
{
Statement stmt=con.createStatement();
int number=stmt.executeUpdate(SQL);
if (number!=0)
succes=true;
out.println("succes = "+succes);
}
catch (SQLException e)
{
succes=false;
e.printStackTrace(out);
}
return(succes);
}
}
