Este artigo compartilha um sistema de gerenciamento de mensagens com base no MVC+DAO, que inclui adição, exclusão, modificação e consulta, e a consulta tem todas as consultas e consultas difusas por palavras -chave. O conteúdo específico é o seguinte
Notedao.java
pacote cn.mldn.lxh.note.dao; importar java.util.*; importar cn.mldn.lxh.note.vo.*; interface pública observada {// Adicione a operação public void insert (nota nota) lança exceção; // modificar a operação public void update (nota) lança exceção; // Excluir operação public void Exclete (int id) lança exceção; // Consulta by ID, principalmente para atualizar o Public Note QuerybyId (int id) lança exceção; // consulta toda a lista pública queryall () lança exceção; // Query Fuzzy Public List List Queryby LIKE (String cond) lança exceção; }; Notedaoimpl.java
pacote cn.mldn.lxh.note.dao.impl; importar java.sql.*; importar java.util.*; importar cn.mldn.lxh.note.vo.*; importar cn.mldn.lxh.note.dao.*; importar cn.mldn.lxh.note.dbc.*; public classe notedAoimpl implementa notedao {// Adicione a operação public void insert (nota note) lança a exceção {string sql = "inserir na nota (id, título, autor, conteúdo) valores (note_senque.nextVal ,? ,? ,?)"; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {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 (Exceção e) {// System.out.println (e); lançar uma nova exceção ("Ocorreu o erro na operação !!!"); } finalmente {dbc.close (); }} // modifique a operação public void update (nota note) lança a exceção {string sql = "update Note set title =?, Autor =?, Content =? Onde id =?" ; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {pstmt = dbc.getConnection (). PreparEstatement (sql); Pstmt.SetString (1, Note.getTitle ()); Pstmt.SetString (2, Note.Getauthor ()); Pstmt.SetString (3, Note.getContent ()); pstmt.setInt (4, note.getId ()); pstmt.executeUpdate (); pstmt.close (); } catch (Exceção e) {lança nova exceção ("Ocorreu um erro durante a operação!!"); } finalmente {dbc.close (); }} // Excluir operação public void Delete (int id) lança Exceção {String sql = "Exclua da nota onde id =?" ; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {pstmt = dbc.getConnection (). PreparEstatement (sql); pstmt.setInt (1, id); pstmt.executeUpdate (); pstmt.close (); } catch (Exceção e) {lança nova exceção ("Ocorreu um erro na operação !!!"); } finalmente {dbc.close (); }} // Consulta by ID, principalmente para atualizações public Note QuerybyId (int id) lança exceção {Nota note = null; String sql = "Selecione ID, título, autor, conteúdo da nota onde id =?" ; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {pstmt = dbc.getConnection (). PreparEstatement (sql); pstmt.setInt (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 (Exceção e) {lança nova exceção ("Ocorreu um erro durante a operação!!"); } finalmente {dbc.close (); } retornar nota; } // Consulta toda a lista pública queryall () lança exceção {listar all = new ArrayList (); String sql = "Selecione ID, título, autor, conteúdo da nota"; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {pstmt = dbc.getConnection (). PreparEstatement (sql); ResultSet rs = pstmt.executeQuery (); while (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)); all.add (nota); } rs.close (); pstmt.close (); } catch (Exceção e) {System.out.println (e); lançar uma nova exceção ("Ocorreu o erro na operação !!!"); } finalmente {dbc.close (); } retornar tudo; } // consulta difusa list public list Querybylike (string cond) lança exceção {listar all = new ArrayList (); String sql = "Selecione ID, título, autor, conteúdo da nota onde o título gosta? Ou autor como? Ou conteúdo como?" ; Preparado PSTMT de estatuto preparado = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); tente {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 = new Note (); note.setId (rs.getInt (1)); note.setTitle (rs.getString (2)); note.setAuthor (rs.getString (3)); note.setContent (rs.getString (4)); all.add (nota); } rs.close (); pstmt.close (); } catch (Exceção e) {System.out.println (e); lançar uma nova exceção ("Ocorreu um erro durante a operação!!"); } finalmente {dbc.close (); } retornar tudo; }}; NOTAVERVLET.JAVA
pacote cn.mldn.lxh.note.servlet; importar java.io.*; importar javax.servlet.*; importar javax.servlet.http.*; importar cn.mldn.lxh.note.factory.*; importar cn.mldn.lxh.note.vo.*; classe pública NotesVlet estende httpServlet {public void Doget (solicitação httpServletRequest, httpServletResponse resposta) lança IoException, servletexception {this.Dopost (solicitação, resposta); } public void DoPost (solicitação httpServletRequest, httpServletResponse Response) lança IoException, servletexception {request.Setcharacterencoding ("GB2312"); String Path = "Errors.jsp"; // recebe o valor do parâmetro a ser operado String status = request.getParameter ("status"); if (status! = null) {// O parâmetro possui conteúdo, selecione o método apropriado // consulte todas as operações se ("selectAll" .equals (status)) {try {request.SetAttribute ("all", daofactory.getnotentenanstance (). Queryall ()); } catch (Exceção e) {} path = "list_notes.jsp"; } // Insira a operação if ("insert" .equals (status)) {// 1. Receba a string de informações inseridas title = request.getParameter ("title"); String autor = request.getParameter ("autor"); String content = request.getParameter ("Content"); // 2. Instancie a nota do objeto VO note = new Note (); note.setTitle (título); Note.setAuthor (autor); note.setContent (conteúdo); // 3. Ligue para o DAO para preencher a operação de inserção do banco de dados sinalizador booleano = false; tente {daofactory.getNotedAoiStance (). insert (Note); bandeira = true; } catch (Exceção e) {} request.setAttribute ("sinalizador", new boolean (sinalizador)); path = "insert_do.jsp"; } // operação de consulta por id. Antes de modificar, você precisa consultar os dados primeiro se ("selectId" .equals (status)) {// recebe parâmetro int id = 0; tente {id = integer.parseint (request.getParameter ("id")); } Catch (Exceção e) {} Try {request.SetAttribute ("Note", daofactory.getnotelaoInstance (). QuerybyId (id)); } catch (Exceção e) {} path = "update.jsp"; } // Atualizar operação if ("update" .equals (status)) {int id = 0; tente {id = integer.parseint (request.getParameter ("id")); } catch (Exceção e) {} string title = request.getParameter ("title"); String autor = request.getParameter ("autor"); String content = request.getParameter ("Content"); Nota note = new Note (); note.setId (id); note.setTitle (título); Note.setAuthor (autor); note.setContent (conteúdo); bandeira booleana = false; tente {daofactory.getNotedAoiStance (). Update (Note); bandeira = true; } catch (Exceção e) {} request.setAttribute ("sinalizador", new boolean (sinalizador)); path = "update_do.jsp"; } // consulta difusa se ("selectbylike" .equals (status)) {string keyword = request.getParameter ("palavra -chave"); tente {request.setAttribute ("all", daofactory.getnotedaoinstance (). Querybylike (palavra -chave)); } catch (Exceção e) {} path = "list_notes.jsp"; } // Excluir operação if ("delete" .equals (status)) {// recebe parâmetro int id = 0; tente {id = integer.parseint (request.getParameter ("id")); } catch (Exceção e) {} sinalização booleana = false; tente {daofactory.getNotedAoiStance (). delete (id); bandeira = true; } catch (Exceção e) {} request.setAttribute ("sinalizador", new boolean (sinalizador)); path = "delete_do.jsp"; }} else {// significa não parâmetros, solicitação ilegal de cliente} request.getRequestDispatcher (path) .forward (solicitação, resposta); }}; / * <VERVLET> <Verlet-name> Note list_notes.jsp
<%@ página contentType = "text/html; charset = gb2312"%> <%@ página import = "java.util.*"%> <%@ página import = "cn.mldn.lxh.note.vo. Exemplo de gerenciamento MVC + DAO Implementação </h1> <hr> <br> <% // codificação de conversão request.setcharacterencoding ("gb2312"); if (session.getAttribute ("uname")! = null) {// Usuário estiver logado em %> < % // Se houver conteúdo, modifique a variável i. Se não houver, não existe um prompt de conteúdo com base no valor de i i int i = 0; String Keyword = request.getParameter ("palavra -chave"); Liste tudo = nulo; all = (list) request.getAttribute ("all"); %> <Form Action = "Method =" Post "> Por favor, digite o conteúdo da consulta: <input type =" text "name =" Palavra -chave "> <input type =" hidden "name =" status "value =" selectbylike "> <input type =" submit "value" <td> ID da mensagem </td> <td> title </td> <td> autor </td> <td> content </td> <td> delete </td> </tr> <% iterator iter = all.iterator (); while (iter.hasnext ()) {note = (note) iter.Next (); i ++; // Execute uma impressão de loop para imprimir todos os conteúdos no formulário da tabela // Remova o conteúdo do banco de dados int id = note.getId (); String title = note.getTitle (); String Author = Note.Getauthor (); String content = note.getContent (); // Como a palavra -chave é vermelha, você precisa receber palavras -chave de consulta aqui // string keyword = request.getParameter ("palavra -chave"); if (palavra -chave! = null) {// Os dados precisam ser title reddited = title.replaceall (palavra -chave, "<font color =/" vermelha/">"+palavra -chave+"</font>"); autor = autor.Replaceall (palavra -chave, "<font color =/" vermelha/">" +palavra -chave +"</font>"); Content = Content.Replaceall (palavra -chave, "<font color =/" Red/">" +Palavra -chave +"</font>"); }%> <tr> <td> <%= id%> </td> <td> <a href = "note? id = <%= id%> & status = selectId"> <%= title%> </a> </td> <td> <tpion = autor> </td> <td> <%= conteúdo> </td> href = "note? id = <%= id%> & status = excluir"> excluir </a> </td> </tr> <%} // determinar se o valor de i altera. Se mudar, significa que há conteúdo. Caso contrário, não há conteúdo se (i == 0) {// fizer um prompt %> <tr> <td colspan = "5"> nada! ! ! </td> </tr> <%}%> </ tabela> <%} else {// O usuário não está conectado, solicite ao usuário a fazer login e pular para o resposta.setheader ("atualizar", "2; url = login.jsp"); %> Você ainda não está conectado, faça o login primeiro! ! ! <br> Ele pulará automaticamente para a janela de login em dois segundos! ! ! <br> Se não houver salto, pressione <a href = "login.jsp"> aqui </a>! ! ! erO exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.