Note that there are some explanatory texts on larger screens.

plurals
  1. POPassing Date from an HTML form to a servlet to an SQL database
    primarykey
    data
    text
    <p>Hi guys I am having a problem getting an inputed date (yyyyMMdd) from an HTML form to a sql database via a servlet. The date from the form passes to the servlet as a string but then somehow I need to convert it to date for storing in the database. </p> <p>I have tried a number of methods, date formatter etc.. A possible way of doing it is to convert it to a long and then format it however this seems like a slight bodge.</p> <p>Any thoughts would be appreciated.</p> <p>Okay this includes the code of the form and the servlet. I have left the buisness object out.</p> <p>The form.....</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;title&gt;Inputing Episode Into Sons Of Anarchy Database&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Add Sons Of Anarchy Episode to Database&lt;/h1&gt; &lt;form name="sonsOfAnarchyForm" method="get" action="EnterpriseCWEverything\src\coursework\Servlet2.java"&gt; &lt;p&gt;Season Number: &lt;input name="seasonNumber" type="text" id="seasonNumber"&gt; &lt;/p&gt; &lt;p&gt;Season Episode Number: &lt;input name="seasonEpisodeNumber" type="text" id="seasonEpisodeNumber"&gt; &lt;/p&gt; &lt;p&gt;Series Episode Number: &lt;input name="seriesEpisodeNumber" type="text" id="seriesEpisodeNumber"&gt; &lt;/p&gt; &lt;p&gt;Episode Title: &lt;input name="title" type="text" id="title"&gt; &lt;/p&gt; &lt;p&gt;Written By: &lt;input name="writtenBy" type="text" id="writtenBy"&gt; &lt;/p&gt; &lt;p&gt;DirectedBy: &lt;input name="directedBy" type="text" id="directedBy"&gt; &lt;/p&gt; &lt;p&gt;Original Air Date (YYYY-MM-DD): &lt;input name="origionalAirDate" type="text" id="origionalAirDate"&gt; &lt;/p&gt; &lt;p&gt;Viewing Figures US (Millions): &lt;input name="viewingFigures" type="text" id="viewingFigures"&gt; &lt;/p&gt; &lt;p&gt; &lt;input name="addEpisode" type="submit" value="Add Episode"&gt; &lt;/p&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>The Servlet.... (Sorry tried using the code samle facility but for whatever reason It was not loving it.)</p> <pre><code> package coursework; import javax.servlet.*; import java.util.Date; import javax.servlet.http.*; import java.io.*; import java.sql.*; import java.text.SimpleDateFormat; import java.util.ArrayList; public class Servlet2 extends HttpServlet { public void doGet (HttpServletRequest rq, HttpServletResponse rp) throws ServletException, IOException { rp.setContentType("text/html"); PrintWriter out = rp.getWriter(); out.println("&lt;HTML&gt;"); out.println("&lt;HEAD&gt;&lt;TITLE&gt; Insert - Test &lt;/TITLE&gt;&lt;/HEAD&gt;"); out.println("&lt;BODY&gt;"); try { ArrayList&lt;Episode&gt; episodes; episodes = new ArrayList&lt;Episode&gt;(); String url = "jdbc:mysql://localhost:3306/sons_of_anarchy"; String driver = "com.mysql.jdbc.Driver"; Class.forName(driver); Connection connection = DriverManager.getConnection(url,"root","password"); // Convert string to date //String temp1; //long temp; //temp = Long.parseLong(rq.getParameter("origionalAirDate")); //temp1 = rq.getParameter("origionalAirDate"); //Problem Code................................................ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = formatter.parse(rq.getParameter("origionalAirDate")); //SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); //Date date = formatter.format(rq.getParameter("origionalAirDate")); // Set the new instance of the episode row Episode temp; episodes.add(temp = new Episode(Integer.parseInt(rq.getParameter("seasonNumber")), Integer.parseInt(rq.getParameter("seasonEpisodeNumber")), Integer.parseInt(rq.getParameter("seriesEpisodeNumber")), rq.getParameter("title"), rq.getParameter("directedBy"), rq.getParameter("writtenBy"), date , Float.parseFloat(rq.getParameter("viewingFigures")))); PreparedStatement editStatement = connection.prepareStatement("INSERT into episode_guide"); // Put in database editStatement.setInt(1, temp.getSeasonNumber()); editStatement.setInt(2, temp.getSeasonEpisodeNumber()); editStatement.setInt(3, temp.getSeriesEpisodeNumber()); editStatement.setString(4, temp.getTitle()); editStatement.setString(5, temp.getDirectedBy()); editStatement.setString(6, temp.getWrittenBy()); editStatement.setDate(7, (java.sql.Date) temp.getOrigionalAirDate()); editStatement.setFloat(8, temp.getViewingFigures()); editStatement.executeUpdate(); editStatement.close(); connection.close(); // Print out new entry int i = 0; while(i &lt; episodes.size()){ out.print(episodes.get(i).getSeasonNumber()+ "\t"+ episodes.get(i).getSeasonEpisodeNumber()+ "\t"+ episodes.get(i).getSeriesEpisodeNumber() + "\t"+ episodes.get(i).getTitle()+ "\t"+ episodes.get(i).getDirectedBy()+ "\t"+ episodes.get(i).getWrittenBy()+ "\t"+ episodes.get(i).getOrigionalAirDate()+ "\t"+ episodes.get(i).getViewingFigures()); out.print("&lt;br&gt;"); i++; } } catch (Exception e) { out.println("Error" + e); } out.println("&lt;H3&gt; Basic Insert Servlet &lt;/H3&gt;"); out.println("Result..."); out.println("&lt;/BODY&gt;&lt;/HTML&gt;"); } } </code></pre> <p>Sorry for the extended dribble but in context maybee it makes more sense.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload