/* * Java Servlet som lägger till en ny post till tabell i databas * Björn Persson, EkI, MdH - 2001-03-10 (rev. 2001-06-10). * bjorn.persson@mdh.se * * Skapa en ODBC-källa med namnet skivor (eller ändra namnet i variabeln url). */ //Importera paket för... import javax.servlet.*; //servlet import javax.servlet.http.*; //servlet import java.io.*; //I/O import java.sql.*; //databaskoppling public class DBInfoga extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { //Skapa URL för databaskoppling (ODBC-källa skivor) String url = "jdbc:odbc:skivor"; //Variabel att lagra nästa index för album - hämtas med fråga int nastaIndex = 0; //Skapa SQL-fråga för att hämta nästa index för album String sqlIndex = "SELECT * FROM qryNastaAlbumIndex"; //******************************************************************* //Hämta värden från HTML-formulär // Kontroll om fältet innehöll något bör ske för _alla_ fält String artist = request.getParameter("Artist"); String titel = request.getParameter("Titel"); String ar = request.getParameter("Ar"); String media = request.getParameter("Media"); String kommentar = request.getParameter("Kommentar"); //Kontrollera att fält innehåll något, annars tilldela "tom" sträng if(kommentar.length() == 0) kommentar = " "; //******************************************************************* // Utskrift till resulterande hemsida //Tala om för webbserver vad som kommer att skickas (d.v.s. HTML-kod) response.setContentType("text/html"); //Hämta objekt för "output" PrintWriter out = response.getWriter(); //Starta HTML-dokument genom att skriva ut HTML-kod out.println(""); out.println(""); out.println(" "); out.println(""); out.println(""); out.println("

Album infogat i databasen

"); out.println("

Album med följande data har infogats i databasen

"); //Skriv ut värden som besökare fyllt i formulär out.println("

Artistens namn är: " + artist + "
"); out.println(" Titeln på album är: " + titel + "
"); out.println(" Året album gavs ut är: " + ar + "
"); out.println(" Media som album är på: " + media + "
"); out.println(" Din kommentar är: " + kommentar + "

"); //******************************************************************* //Databasobjekt kan generera fel (exceptions) och måste därför finnas // inom ett try-catch-block. try { //Ladda klass med JDBC-drivrutn Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //***************************************************************** //Hämta nästa index för album från databas och kör UPDATE-fråga //Öppna förbindelse till databas Connection con = DriverManager.getConnection(url); //Skapa Statement-objekt Statement st = con.createStatement(); //Utför fråga och placera resultat i variabeln rs ResultSet rs = st.executeQuery(sqlIndex); //Flytta till första posten rs.next(); //Hämta värdet (det enda) från posten nastaIndex = rs.getInt("Nasta"); //Stäng fråga rs.close(); //***************************************************************** //Skapa UPDATE-fråga och kör //Skapa SQL-fråga för att lägga till post String sqlInfoga = "INSERT INTO tblAlbum VALUES(" + nastaIndex + ",'" + artist + "', '" + titel + "', '" + ar + "', '" + media + "', '" + kommentar + "')"; //Utför fråga st.executeUpdate(sqlInfoga); //Stäng förbindelse till databas con.close(); } //try catch(Exception e) //Hantera eventuella fel { out.println("

Det uppstod ett fel...

"); out.println("

" + e.getMessage() + "
 

"); } //catch //Avsluta HTML-dokument out.println(""); out.println(""); } //doPost() public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { //Anropa metoden doPost() ovan - finns ingen att implementera två // metoder som gör samma sak. :-) doPost(request, response); } //doGet } //class DBInfoga