Este artículo comparte un sistema de gestión de mensajes basado en MVC+DAO, que incluye adición, eliminación, modificación y consulta, y la consulta tiene todas las consultas y consultas difusas por palabras clave. El contenido específico es el siguiente
Novedao.java
paquete cn.mldn.lxh.note.dao; import java.util.*; import cn.mldn.lxh.note.vo.*; Interfaz pública Notedao {// Agregar Operation Public void Insert (nota nota) arroja excepción; // Modificar Operation Public Void Update (nota) lanza una excepción; // Eliminar la operación de Operación public void Eliminar (IND ID) lanza la excepción; // Consulta por ID, principalmente para actualizar la nota pública QueryByid (INT ID) lanza una excepción; // Consulta toda la lista pública Queryall () lanza la excepción; // Fuzzy Consulty Public List Querybylike (String Cond) lanza la excepción; }; NotoDaoImpl.java
paquete cn.mldn.lxh.note.dao.impl; import java.sql.*; import java.util.*; import cn.mldn.lxh.note.vo.*; import cn.mldn.lxh.note.dao.*; import cn.mldn.lxh.note.dbc.*; La clase pública notaDaoImpl implementa notaDaoo {// Agregar operación pública void inserta (nota) lanza la excepción {string sql = "insertar en nota (id, título, autor, contenido) valores (nota_sequ.nextval,?,?,?)"; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setString (1, nota.gettitle ()); pstmt.setString (2, nota.getAuthor ()); pstmt.setString (3, nota.getContent ()); pstmt.executeUpdate (); pstmt.close (); } capt (excepción e) {// system.out.println (e); arrojar una nueva excepción ("El error ocurrió en la operación!"); } finalmente {dbc.close (); }} // Modifique la actualización de la operación public void (nota) lanza la excepción {String sql = "Update nota set title =?, Autor =?, Content =? ¿Dónde id =?" ; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setString (1, nota.gettitle ()); pstmt.setString (2, nota.getAuthor ()); pstmt.setString (3, nota.getContent ()); pstmt.setInt (4, nota.getId ()); pstmt.executeUpdate (); pstmt.close (); } Catch (Exception e) {tire nueva excepción ("¡Se produjo un error durante la operación!!"); } finalmente {dbc.close (); }} // Eliminar la operación public void Eliminar (int id) lanza la excepción {String sql = "Eliminar de la nota donde id =?" ; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setInt (1, id); pstmt.executeUpdate (); pstmt.close (); } Catch (Exception e) {Throw New Exception ("¡Se produjo un error en la operación!"); } finalmente {dbc.close (); }} // Consulta por ID, principalmente para actualizaciones Nota pública QueryByid (int id) arroja excepción {nota nota = nulo; String sql = "Seleccionar id, título, autor, contenido de nota donde id =?" ; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setInt (1, id); ResultSet rs = pstmt.executeQuery (); if (rs.next ()) {nota = new Note (); note.setId (rs.getInt (1)); nota.settitle (rs.getString (2)); note.setAuthor (rs.getString (3)); nota.setContent (rs.getString (4)); } rs.close (); pstmt.close (); } Catch (Exception e) {tire nueva excepción ("¡Se produjo un error durante la operación!!"); } finalmente {dbc.close (); } nota de retorno; } // Consulta Toda la lista pública Queryall () lanza la excepción {list all = new ArrayList (); Cadena sql = "Seleccionar id, título, autor, contenido de nota"; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); ResultSet rs = pstmt.executeQuery (); while (rs.next ()) {nota = nueva nota (); note.setId (rs.getInt (1)); nota.settitle (rs.getString (2)); note.setAuthor (rs.getString (3)); nota.setContent (rs.getString (4)); all.Add (nota); } rs.close (); pstmt.close (); } catch (Exception e) {System.out.println (e); arrojar una nueva excepción ("El error ocurrió en la operación!"); } finalmente {dbc.close (); } devolver todo; } // Fuzzy Query Public List QueryBylike (String Cond) lanza la excepción {list all = new ArrayList (); String sql = "Seleccione ID, Título, Autor, Contenido de Note Where Title Like? O Autor Like? O Content?" ; Preparado PSTMT = NULL; DataBASEConnection dbc = null; dbc = new DataBASEConnection (); intente {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setString (1, "%"+cond+"%"); pstmt.setString (2, "%"+cond+"%"); pstmt.setString (3, "%"+cond+"%"); ResultSet rs = pstmt.executeQuery (); while (rs.next ()) {nota = nueva nota (); note.setId (rs.getInt (1)); nota.settitle (rs.getString (2)); note.setAuthor (rs.getString (3)); nota.setContent (rs.getString (4)); all.Add (nota); } rs.close (); pstmt.close (); } catch (Exception e) {System.out.println (e); arroje una nueva excepción ("¡Se produjo un error durante la operación!!"); } finalmente {dbc.close (); } devolver todo; }}; Notas servlet.java
paquete cn.mldn.lxh.note.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import cn.mldn.lxh.note.factory.*; import cn.mldn.lxh.note.vo.*; Public Class Noteservlet extiende httpservlet {public void doget (httpservletRequest solicitud, respuesta httpservletResponse) lanza ioexception, servletException {this.dopost (solicitud, respuesta); } public void dopost (httpservletRequest solicitud, respuesta httpservletreSponse) lanza ioexception, servletException {request.setcharacterEncoding ("GB2312"); String ruta = "errores.jsp"; // recibir el valor del parámetro a operar stating status = request.getParameter ("status"); if (status! = null) {// El parámetro tiene contenido, luego seleccione el método apropiado // consulte todas las operaciones if ("selectAll" .equals (status)) {try {request.setAttribute ("all", daofactory.getNotedAoInstance (). Queryall ()); } catch (excepción e) {} path = "list_notes.jsp"; } // Insertar operación if ("insertar" .equals (status)) {// 1. Reciba la información insertada Title de cadena = request.getParameter ("Título"); Cadena autor = request.getParameter ("autor"); Cadena content = request.getParameter ("contenido"); // 2. Instanciar la nota del objeto VO = nueva nota (); nota.settitle (título); nota.setAuthor (autor); note.setContent (contenido); // 3. Llame a DAO para completar la operación de inserción de la base de datos Boolean Flag = false; intente {daofactory.getNotedAoInStance (). insert (nota); bandera = verdadero; } catch (Exception e) {} request.SetAttribute ("bandera", new Boolean (Flag)); ruta = "insert_do.jsp"; } // Operación de consulta por id. Antes de modificar, debe consultar los datos primero si ("selectId" .equals (status)) {// Recibe parámetro int id = 0; prueba {id = Integer.ParseInt (request.getParameter ("id")); } catch (Exception e) {} try {request.setAttribute ("nota", daofactory.getNotedAoInStance (). QueryById (id)); } catch (excepción e) {} path = "update.jsp"; } // Actualizar operación if ("update" .equals (status)) {int id = 0; prueba {id = Integer.ParseInt (request.getParameter ("id")); } catch (excepción e) {} string title = requit.getParameter ("title"); Cadena autor = request.getParameter ("autor"); Cadena content = request.getParameter ("contenido"); Nota nota = nueva nota (); nota.setId (id); nota.settitle (título); nota.setAuthor (autor); note.setContent (contenido); bandera booleana = falso; intente {daofactory.getNotedAoInStance (). update (nota); bandera = verdadero; } catch (Exception e) {} request.SetAttribute ("bandera", new Boolean (Flag)); path = "update_do.jsp"; } // Fuzzy Query if ("SelectBylike" .equals (status)) {String Keyword = request.getParameter ("Palabra clave"); intente {request.setAttribute ("all", daofactory.getNotedAoInstance (). QueryBylike (palabra clave)); } catch (excepción e) {} path = "list_notes.jsp"; } // Eliminar operación if ("delete" .equals (status)) {// Recibe parámetro int id = 0; prueba {id = Integer.ParseInt (request.getParameter ("id")); } catch (Exception e) {} boolean flag = false; intente {daofactory.getNotedAoInStance (). Eliminar (id); bandera = verdadero; } catch (Exception e) {} request.SetAttribute ("bandera", new Boolean (Flag)); ruta = "delete_do.jsp"; }} else {// significa no parámetros, solicitud ilegal del cliente} request.getRequestDispatcher (ruta) .forward (solicitud, respuesta); }}; / * <Servlet> <Servlet-name> nota </servlet-name> <ervlet-class> cn.mldn.lxh.note.servlet.noteservlet </servlet-class> </servlet> <ervlet-mapping> <ervlet-name> nota </servlet-name> <uRl-pattern>/nota/nota_mvc/nota </url-poleN> </servlet> * * *////////SERVERT list_notes.jsp
<%@ page contentType = "text/html; charset = gb2312"%> <%@ page import = "java.util.*"%> <%@ page import = "cn.mldn.lxh.note.vo.*"%> <html> <fead> <title> mvc+dao gestión de mensajes </title> </title> <bitle> <beaL> </title> <beaL> <bea Gestión Ejemplo-MVC + DAO Implementación </h1> <hr> <br> <% // Solicitud de conversión de codificación. SetcharacterEncoding ("GB2312"); if (session.getAttribute ("uname")! = null) {// El usuario se registra en %> < % // Si hay contenido, modifique la variable i. Si no hay, no hay un mensaje de contenido basado en el valor de I int i = 0; String Keyword = request.getParameter ("Palabra clave"); Lista ALL = NULL; all = (list) request.getAttribute ("all"); %> <form de acción = "nota" método = "post"> por favor ingrese el contenido de la consulta: <input type = "text" name = "keyword"> <input type = "hidden" name = "status" value = "selectbylike"> <input type = "enviar" valor = "consulta"> </form> </h3> <a href = "insert.jsp"> agregar un nuevo mensaje </a> </h3> <tr> <tr> <TD> ID de mensaje </td> <td> title </td> <td> autor </td> <td> content </td> <td> delete </td> </tr> <% iterator iterator = all.iterator (); while (iter.hasnext ()) {nota = (nota) iter.next (); i ++; // realizar una impresión de bucle para imprimir todos los contenidos en formulario de tabla // Eliminar el contenido de la base de datos int id = note.getID (); Title de cadena = nota.gettitle (); String autor = nota.getAuthor (); String content = nota.getContent (); // Debido a que la palabra clave es roja, debe recibir palabras clave de consulta aquí // string keyword = request.getParameter ("palabra clave"); if (Keyword! = NULL) {// Los datos deben ser reddited title = title.replaceAll (palabra clave, "<font color =/" rojo/">"+palabra clave+"</font>"); autor = autor.replaceall (palabra clave, "<font color =/" rojo/">" +palabra clave +"</font>"); content = content.replaceAll (palabra clave, "<font color =/" rojo/">" +palabra clave +"</font>"); }%> <tr> <tr> <td> <%= id%> </td> <td> <a href = "nota? id = <%= id%> & status = selectid"> <%= title%> </a> </td> <td> <%= author%> </td> <td> <%= contenido> </td> <td> <a a href = "nota? id = <%= id%> & status = delete"> Eliminar </a> </td> </tr> <%} // determina si el valor de I cambia. Si cambia, significa que hay contenido. De lo contrario, no hay contenido si (i == 0) {// Haga un aviso %> <tr> <td colspan = "5"> ¡nada! ! ! </td> </tr> <%}%> </table> <%} else {// El usuario no está iniciado, solicite al usuario que inicie sesión y salte a respuesta.setheader ("refresh", "2; url = login.jsp"); %> Todavía no ha iniciado sesión, ¡inicie sesión primero! ! ! <br> ¡Saltará automáticamente a la ventana de inicio de sesión en dos segundos! ! ! <br> Si no hay salto, presione <a href = "Login.jsp"> ¡Aquí </a>! ! ! <br> < %} %> </center> </body> </html>Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.