Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Java] Servlet e Database

    Ciao a tutti ragazzi.
    Vorrei creare una servlet in grado di gestire le operazioni di crud su un Db mysql.
    in pratica, ho la mia pagina jsp con il form di registrazione, nella servlet ho il metodo doGet con i vari request.parameter con cui prendo l'id,e poi ho una classe astratta nella quale vorrei memorizzare i dati appena presi. come memorizzo questi dati dalla servlet alla classe? inoltre, mi hanno detto di utilizzare una DAO per collegare servlet classe e db, ma essendo alle prime armi avrei bisogno di una dritta.

    Il tutto deve essere strutturato così. Pagina JSP --> Servlet --> DAO --> DB
    <-- |Classe|-->

    Spero di essere stato abbastanza chiaro!!
    Grazie a tutti quelli che mi aiuteranno!!!

  2. #2
    sono arrivato a questo punto
    index .jsp
    codice:
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    	<form name="Inserimento DB" action="/Progetto/Acquisisci" method="get">
    		<div style="text-align: center">
    			ID: <input name="id" type="text" />
     Nome: <input name="nome"
    				type="text" />
     Cognome:<input name="cognome" type="text" />
    
    			Indirizzo:<input name="indirizzo" type="text" />
     Ruolo: <input
    				name="ruolo" type="text" />
     <input id="Submit" type="submit"
    				value="Inserisci" />
    		</div>
    	</form>
    
    </body>
    </html>
    Acquisisci.java (SERVLET)

    codice:
    package servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import classi.DAO;
    import classi.Persona;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Acquisisci extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		String id = request.getParameter("id");
    		String nome = request.getParameter("nome");
    		String cognome = request.getParameter("cognome");
    		String indirizzo = request.getParameter("indirizzo");
    		String ruolo = request.getParameter("ruolo");
    
    		if (id != null && nome != null && cognome != null && indirizzo != null
    				& ruolo != null) {
    			if (id.length() > 0 && nome.length() > 0 && cognome.length() > 0
    					&& indirizzo.length() > 0 && ruolo.length() > 0) {
    				Persona p = new Persona(id, nome, cognome, indirizzo, ruolo);
    				DAO dao = new DAO();
    				dao.inserisciPersona(p);
    			} else {
    				PrintWriter out = response.getWriter();
    				out.println("<html>");
    				out.println("<head>");
    				out.println("<title>Servlet</title>");
    				out.println("</head>");
    				out.println("<body>");
    				out.println("<h1> Errore nell'inserimento dei dati, controlla i campi </h1>");
    				out.println("</body>");
    				out.println("</html>");
    			}
    		}
    	}
    }
    Persona.java

    codice:
    package classi;
    
    public class Persona {
    	String id;
    	String nome;
    	String cognome;
    	String indirizzo;
    	String ruolo;
    
    	public Persona(String id, String nome, String cognome, String indirizzo,
    			String ruolo) {
    		this.id = id;
    		this.nome = nome;
    		this.cognome = cognome;
    		this.indirizzo = indirizzo;
    		this.ruolo = ruolo;
    	}
    
    }
    DAO.java

    codice:
    package classi;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    public class DAO {
    	public void inserisciPersona(Persona p) {
    		try {
    			String driver = "com.mysql.jdbc.Driver";
    			Class.forName(driver);
    			String url = "jdbc:mysql://localhost:3306/progetto";
    			Connection con = DriverManager.getConnection(url, "root", "");
    			PreparedStatement cmd = con
    					.prepareStatement("INSERT INTO persona (idPersona, nome, cognome, indirizzo, ruolo) VALUES (?, ?, ?, ?, ?)");
    			cmd.setInt(1, Integer.parseInt(p.id));
    			cmd.setString(2, p.nome);
    			cmd.setString(3, p.cognome);
    			cmd.setString(4, p.indirizzo);
    			cmd.setString(5, p.ruolo);
    			cmd.execute();
    			// if (cmd.execute())
    			// System.out.println("inserimento corretto");
    			con.close();
    		} catch (SQLException SQLexc) {
    			SQLexc.printStackTrace();
    			System.err.println(SQLexc);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    			System.err.println(e);
    		}
    	}
    
    }

    Secondo voi perchè non fa sta cavolo di Insert?

  3. #3
    A patto che non vegano generate eccezioni (suppongo di no), il metodo da richiamare su un PreparedStatement per effettuare un INSERT,UPDATE,DELETE è "executeUpdate" non "execute" che viene usato per le query di lettura.

  4. #4
    se è solo quello, vado a dare testate contro un muro.....

  5. #5
    Originariamente inviato da psyche86
    se è solo quello, vado a dare testate contro un muro.....
    vince il muro mi sa!

  6. #6
    ho fatto caso ora, facendo un printStackTrace, che effettivamente c'è un eccezione lanciata, ma che in realtà le impostazioni sono corrette. mi da un java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    io però ho importato il j connector..
    ho persino pure copiato da un altro progetto l'apertura della connessione!

  7. #7
    Nessuna idea? il codice vi sembra giusto per lo meno? l'unica pecca è questa Exceptin che viene throwata, ma mi sembra di aver impostato tutto correttamente. sia jBoss che MySql! tutte le librerie sono state importate

  8. #8
    Devi assicurarti che il driver jdbc venga esportato nella cartella web-inf/lib; se usi eclipse devi andare sulle proprietà del progetto -> java build path e fleggare il jar dentro il tab Order and Export o in alternativa copiare a mano il jar dentro la suddetta cartella

  9. #9
    Originariamente inviato da francesco.muia
    Devi assicurarti che il driver jdbc venga esportato nella cartella web-inf/lib; se usi eclipse devi andare sulle proprietà del progetto -> java build path e fleggare il jar dentro il tab Order and Export o in alternativa copiare a mano il jar dentro la suddetta cartella

    Risolto!! mi aveva importato i jConnector dentro le Libraries di Java, e non nelle lib di web-inf
    Grazieeeeee

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.