Cet article partage un système de gestion de messages basé sur MVC + DAO, qui comprend l'addition, la suppression, la modification et la requête, et la requête a toutes les requêtes et la requête floue par des mots clés. Le contenu spécifique est le suivant
Notedao.java
package cn.mldn.lxh.note.dao; import java.util. *; import Cn.mldn.lxh.note.vo. *; Interface publique NotEDAO {// Ajouter l'opération Insert de public public (note note) lève une exception; // Modifier l'opération publique void Update (note note) lève une exception; // Supprimer l'opération publique void delete (int id) lève une exception; // requête par id, principalement pour mettre à jour la note publique QueryByid (int id) lève une exception; // interroger toutes les liste publiques Queryall () lève une exception; // Fuzzy Query Public List QueryBylike (String cond) lève une exception; }; Notedaoimpl.java
package cn.mldn.lxh.note.dao.impl; Importer java.sql. *; import java.util. *; import Cn.mldn.lxh.note.vo. *; Importer cn.mldn.lxh.note.dao. *; Importer cn.mldn.lxh.note.dbc. *; classe publique NoteDaOIMPL implémente NoteDao {// Ajouter l'opération publique void insert (note note) exception {String sql = "insérer dans note (id, title, auteur, contenu) VALEUR (note_ seash.nextval ,? ,?)"; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); PSTMT.SetString (1, note.getTitle ()); PSTMT.SetString (2, note.getAuthor ()); PSTMT.SetString (3, note.getContent ()); pstmt.ExecuteUpdate (); pstmt.close (); } catch (exception e) {// system.out.println (e); lancer une nouvelle exception ("l'erreur s'est produite dans l'opération !!!"); } enfin {dbc.close (); }} // Modifier l'opération publique void Update (note note) lève une exception {String sql = "Update note set title =?, Auteur =?, Content =? Où id =?" ; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); PSTMT.SetString (1, note.getTitle ()); PSTMT.SetString (2, note.getAuthor ()); PSTMT.SetString (3, note.getContent ()); pstmt.sentInt (4, note.getId ()); pstmt.ExecuteUpdate (); pstmt.close (); } catch (exception e) {lancer une nouvelle exception ("Une erreur s'est produite pendant l'opération!!"); } enfin {dbc.close (); }} // Supprimer l'opération publique void delete (int id) lève une exception {String sql = "delete de la note où id =?" ; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); pstmt.sentInt (1, id); pstmt.ExecuteUpdate (); pstmt.close (); } catch (exception e) {lancer une nouvelle exception ("une erreur s'est produite dans l'opération !!!"); } enfin {dbc.close (); }} // requête par id, principalement pour les mises à jour de la note publique queryByid (int id) lève l'exception {note note = null; String SQL = "SELECT ID, Title, Auteur, Contenu From Note Where id =?" ; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); pstmt.sentInt (1, id); ResultSet rs = pstmt.ExecuteQuery (); if (Rs.Next ()) {note = new Note (); note.setid (Rs.getInt (1)); note.setTitle (Rs.GetString (2)); note.setAuthor (Rs.getString (3)); note.setContent (Rs.getString (4)); } Rs.Close (); pstmt.close (); } catch (exception e) {lancer une nouvelle exception ("Une erreur s'est produite pendant l'opération!!"); } enfin {dbc.close (); } note de retour; } // requête tous les publics publics queryall () lève une exception {list all = new ArrayList (); String sql = "SELECT ID, titre, auteur, contenu From Note"; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); ResultSet rs = pstmt.ExecuteQuery (); while (Rs.Next ()) {note note = new Note (); note.setid (Rs.getInt (1)); note.setTitle (Rs.GetString (2)); note.setAuthor (Rs.getString (3)); note.setContent (Rs.getString (4)); all.add (note); } Rs.Close (); pstmt.close (); } catch (exception e) {System.out.println (e); lancer une nouvelle exception ("l'erreur s'est produite dans l'opération !!!"); } enfin {dbc.close (); } renvoie tout; } // Fuzzy Query Public List QueryByLILY (String cond) lève une exception {list all = new ArrayList (); String SQL = "SELECT ID, Title, Auteur, Contenu de Note Where Title Like? Ou Auteur comme? Ou Contenu comme?" ; Préparé Pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); essayez {pstmt = dbc.GetConnection (). PrepareStatement (SQL); PSTMT.SetString (1, "%" + cond + "%"); PSTMT.SetString (2, "%" + cond + "%"); PSTMT.SetString (3, "%" + cond + "%"); ResultSet rs = pstmt.ExecuteQuery (); while (Rs.Next ()) {note note = new Note (); note.setid (Rs.getInt (1)); note.setTitle (Rs.GetString (2)); note.setAuthor (Rs.getString (3)); note.setContent (Rs.getString (4)); all.add (note); } Rs.Close (); pstmt.close (); } catch (exception e) {System.out.println (e); Jetez une nouvelle exception ("Une erreur s'est produite pendant l'opération!!"); } enfin {dbc.close (); } renvoie tout; }}; Noteservlet.java
package cn.mldn.lxh.note.servlet; importer java.io. *; Importer Javax.servlet. *; import javax.servlet.http. *; import Cn.mldn.lxh.note.factory. *; import Cn.mldn.lxh.note.vo. *; classe publique Noteservlet étend httpServlet {public void doGet (httpsservletRequest request, httpservletResponse réponse) lève ioException, servlexception {this.dopost (request, réponse); } public void doPost (requête HttpServletRequest, réponse httpservletResponse) lève ioException, servlexception {request.SetcharAtterencoding ("gb2312"); String path = "errors.jsp"; // Recevoir la valeur du paramètre à utiliser Statut Status = request.getParameter ("Status"); if (status! = null) {// Le paramètre a du contenu, puis sélectionnez la méthode appropriée // interroger toutes les opérations if ("selectall" .equals (status)) {try {request.setAttribute ("all", daofactory.getnotedaoinSitance (). Queryall ()); } catch (exception e) {} path = "list_notes.jsp"; } // insérer l'opération if ("insert" .equals (status)) {// 1. Recevoir la chaîne d'informations insérée Title = request.getParameter ("title"); String auteur = request.getParameter ("auteur"); String Content = request.getParAmètre ("Content"); // 2. Instancier l'objet VO Remarque Remarque = new Remarque (); note.setTitle (titre); note.setAuthor (auteur); note.setContent (contenu); // 3. Appelez DAO pour terminer l'opération d'insertion de la base de données booléen flag = false; essayez {daofactory.getNotedAoinstance (). INSERT (note); Flag = true; } catch (exception e) {} request.setAttribute ("Flag", new Boolean (Flag)); path = "insert_do.jsp"; } // Fonctionnement de requête par id. Avant de modifier, vous devez d'abord interroger les données if ("selectId" .equals (status)) {// Recevoir le paramètre int id = 0; try {id = Integer.ParseInt (request.getParameter ("id")); } catch (exception e) {} try {request.setAttribute ("note", daofactory.getNotEdAoinstance (). QueryById (id)); } catch (exception e) {} path = "update.jsp"; } // Mise à jour de l'opération if ("update" .equals (status)) {int id = 0; try {id = Integer.ParseInt (request.getParameter ("id")); } catch (exception e) {} string title = request.getParameter ("title"); String auteur = request.getParameter ("auteur"); String Content = request.getParAmètre ("Content"); Note note = new Note (); note.setid (id); note.setTitle (titre); note.setAuthor (auteur); note.setContent (contenu); booléen drapeau = false; essayez {daofactory.getNotedAoinstance (). Update (note); Flag = true; } catch (exception e) {} request.setAttribute ("Flag", new Boolean (Flag)); path = "update_do.jsp"; } // Fuzzy Query if ("selectByLILY" .equals (status)) {String Keyword = request.getParameter ("Keyword"); essayez {request.setAttribute ("all", daofactory.getNoTeDaOoinstance (). QueryByLILY (mot-clé)); } catch (exception e) {} path = "list_notes.jsp"; } // Supprimer l'opération if ("delete" .equals (status)) {// Recevoir le paramètre int id = 0; try {id = Integer.ParseInt (request.getParameter ("id")); } catch (exception e) {} booléen flag = false; essayez {daofactory.getNotedAoinstance (). Delete (id); Flag = true; } catch (exception e) {} request.setAttribute ("Flag", new Boolean (Flag)); path = "Delete_do.jsp"; }} else {// Cela signifie aucun paramètre, demande du client illégal} request.getRequestDispatcher (path) .forward (request, réponse); }}; / * <Servlet> <Servlet-Name> Remarque </ Servlet-Name> <Servlet-Class> Cn.mldn.lxh.note.servlet.noserServlet </ Servlet-Class> </ Servlet> <Servlet Mapping> <Servlet-Name> list_notes.jsp
<% @ page contenttype = "text / html; charset = gb2312"%> <% @ page import = "java.util. *"%> <% @ page import = "cn.mldn.lxh.note.vo. *"%> <html> <fread> <Titre> MVC + Dao Management Programbogin Login </ Title> Exemple de gestion-MVC + Implémentation DAO </h1> <hr> <br> <% // Encodage de demande de conversion.SetcharAtterencoding ("GB2312"); if (session.getAttribute ("uname")! = null) {// L'utilisateur est connecté en%> <% // s'il y a du contenu, modifiez la variable i. S'il n'y a pas, il n'y a pas d'invite de contenu basée sur la valeur de I int i = 0; String keyword = request.getParameter ("Keyword"); Lister all = null; all = (list) request.getAttribute ("all"); %> <form action = "note" metheth = "post"> Veuillez saisir le contenu de la requête: <input type = "text" name = "keyword"> <input type = "Hidden" name = "status" value = "selectBylike"> <input type = "soumi" value = "query"> </ form> </ h3> <a href = "insert.jsp"> ajout d'un nouveau message </a> Id </td> <td> title </td> <td> auteur </td> <td> contenu </td> <td> delete </td> </tr> <% iterator iter = all.iterator (); while (iter.hasnext ()) {note note = (note) iter.next (); i ++; // Effectuez une imprime en boucle pour imprimer tous les contenus dans le formulaire de table // Supprimer le contenu de la base de données int id = note.getId (); String title = note.getTitle (); String auteur = note.getAuthor (); String content = note.getContent (); // Parce que le mot clé est rouge, vous devez recevoir des mots clés de requête ici // String Keyword = request.getParameter ("Keyword"); if (mot-clé! = null) {// Les données doivent être redDited title = title.replaceAll (mot-clé, "<font color = /" red / ">" + mot clé + "</font>"); auteur = auteur.replaceALL (mot-clé, "<font color = /" red / ">" + mot-clé + "</font>"); Content = content.replaceAll (mot-clé, "<font color = /" red / ">" + mot-clé + "</font>"); }%> <tr> <td> <% = id%> </td> <td> <a href = "note? id = <% = id%> & status = selectId"> <% = title%> </a> </td> <td> <% = auteur> </ td> <td> <% = contenu%> </td> <td> <a href = "note? id = <% = id%> & status = delete"> delete </a> </td> </tr> <%} // Déterminez si la valeur de i change. Si cela change, cela signifie qu'il y a du contenu. Sinon, il n'y a pas de contenu si (i == 0) {// faire une invite%> <tr> <td colspan = "5"> rien! ! ! </td> </ tr> <%}%> </s table> <%} else {// L'utilisateur n'est pas connecté, invite l'utilisateur à se connecter et à sauter à la réponse.sethEader ("rafraîchissant", "2; url = login.jsp"); %> Vous n'êtes pas encore connecté, veuillez vous connecter en premier! ! ! <br> Il sautera automatiquement à la fenêtre de connexion en deux secondes! ! ! <br> S'il n'y a pas de saut, appuyez sur <a href = "login.jsp"> ici </a>! ! ! <br> <%}%> </ centre> </body> </html>Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.