В этой статье используется система управления сообщениями, основанную на MVC+DAO, которая включает в себя добавление, удаление, модификацию и запрос, а запрос имеет все запросы и нечеткие запросы по ключевым словам. Конкретный контент заключается в следующем
Nateedao.java
Пакет cn.mldn.lxh.note.dao; Импорт java.util.*; Импорт cn.mldn.lxh.note.vo.*; Общедоступный интерфейс natedao {// добавить операцию public void вставка (примечание). Вызывает исключение; // Изменить операцию публичного обновления void (примечание). // Удалить операцию Public void DELETE (IM ID) бросает исключение; // Запрос по ID, в основном для обновления публичной примечания QueryByID (INT ID), бросает исключение; // Запрос всех публичных списков Queryall () бросает исключение; // нечеткий запрос общего списка Querybylike (String Cond) бросает исключение; }; Natedaoimpl.java
Пакет cn.mldn.lxh.note.dao.impl; Импорт java.sql.*; Импорт java.util.*; Импорт cn.mldn.lxh.note.vo.*; Импорт cn.mldn.lxh.note.dao.*; Импорт cn.mldn.lxh.note.dbc.*; открытый класс natedaoimpl реализует natedao {// добавление операции public void insert (примечание), выбрасывает exection {string sql = "вставьте в note (id, заголовок, автор, контент) значения (note_sek.nextval,?,?,?)"; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {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); бросить новое исключение («Ошибка произошла в операции !!!»); } наконец {dbc.close (); }} // Изменение операции Public void Update (примечание) Throws Exception {string sql = "Обновление примечание set =?, Author =?, Content =? Где id =?" ; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {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 (Exception e) {бросить новое исключение («Ошибка произошла во время операции!!!»); } наконец {dbc.close (); }} // Удалить операцию public void delete (int id) выбрасывает Exception {string sql = "Удалить из примечания, где id =?" ; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {pstmt = dbc.getConnection (). PrepareStatement (SQL); pstmt.setint (1, id); pstmt.executeupdate (); pstmt.close (); } catch (Exception e) {бросить новое исключение («Ошибка произошла в операции !!!»); } наконец {dbc.close (); }} // Запрос по ID, в основном для обновлений публики примечания QueryByID (INT ID) Throws Exception {Note Note = null; String sql = "Выберите идентификатор, заголовок, автор, контент из примечания, где id =?" ; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {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 (Exception e) {бросить новое исключение («Ошибка произошла во время операции!!!»); } наконец {dbc.close (); } return Note; } // Запрос всех публичных списков Queryall () Throws Exception {List All = new ArrayList (); String sql = "Выберите идентификатор, заголовок, автор, контент из Note"; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {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 (примечание); } rs.close (); pstmt.close (); } catch (Exception e) {System.out.println (e); бросить новое исключение («Ошибка произошла в операции !!!»); } наконец {dbc.close (); } вернуть все; } // Нечеткий запрос общедоступного списка Querybylike (String Cond) Throws Exception {list All = new ArrayList (); String sql = "Выберите идентификатор, заголовок, автор, контент из примечания, где нравится заголовок? Или автор, как? Или контент, как?" ; Подготовленное Statatement pstmt = null; DatabaseConnection dbc = null; dbc = new DatabaseConnection (); try {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 (примечание); } rs.close (); pstmt.close (); } catch (Exception e) {System.out.println (e); Бросьте новое исключение («Ошибка произошла во время операции!!!»); } наконец {dbc.close (); } вернуть все; }}; NoteServlet.java
Пакет cn.mldn.lxh.note.servlet; импортировать java.io.*; Импорт javax.servlet.*; Импорт javax.servlet.http.*; Импорт cn.mldn.lxh.note.factory.*; Импорт cn.mldn.lxh.note.vo.*; Public Class NoteServlet расширяет httpservlet {public void doget (httpservletrequest запрос, httpservletresponse response) бросает ioexception, servletexception {this.dopost (запрос, ответ); } public void dopost (httpservletrequest, httpservletresponse response), бросает ioexception, servletexception {request.setcharacterencoding ("gb2312"); String path = "errors.jsp"; // получение значения параметра для работы String Status = request.getParameter ("status"); if (status! = null) {// Параметр имеет контент, затем выберите соответствующий метод // Запрос всех операций if ("selectall" .equals (status)) {try {request.setattribute ("all", daoFactory.getNotedAoinStance (). QueryAll ()); } catch (Exception e) {} path = "list_notes.jsp"; } // Вставить операцию if ("insert" .equals (status)) {// 1. Получить вставленную информацию строки информации = request.getParameter ("title"); String Автор = request.getParameter ("Автор"); String content = request.getParameter ("content"); // 2. создать экземпляры объекта VO Note Note = new Note (); Note.setTitle (заголовок); Note.setAuthor (автор); Note.SetContent (Content); // 3. Позвоните DAO, чтобы завершить операцию вставки базы данных Boolean Flag = false; try {daoFactory.getNotedaOinstance (). INSERT (Note); flag = true; } catch (Exception e) {} request.setattribute ("flag", new Boolean (flag)); path = "insert_do.jsp"; } // Операция запроса по id. Перед изменением необходимо сначала запросить данные if ("selectId" .equals (status)) {// Принять параметр 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"; } // Операция обновления if ("update" .equals (status)) {int id = 0; try {id = integer.parseint (request.getParameter ("id")); } catch (Exception e) {} string title = request.getParameter ("title"); String Автор = request.getParameter ("Автор"); String content = request.getParameter ("content"); Примечание = New Note (); note.setid (id); Note.setTitle (заголовок); Note.setAuthor (автор); Note.SetContent (Content); логический флаг = false; try {daoFactory.getNotedaOinstance (). Обновление (примечание); flag = true; } catch (Exception e) {} request.setattribute ("flag", new Boolean (flag)); path = "update_do.jsp"; } // нечеткий запрос if ("selectbylike" .equals (status)) {string keyword = request.getParameter ("Keyword"); try {request.setattribute ("all", daofactory.getnotedaoinstance (). Querybylike (ключевое слово)); } catch (Exception e) {} path = "list_notes.jsp"; } // Удалить операцию if ("delete" .equals (status)) {// получение параметра int id = 0; try {id = integer.parseint (request.getParameter ("id")); } catch (Exception e) {} boolean flag = false; try {daoFactory.getNotedaOinstance (). Delete (id); flag = true; } catch (Exception e) {} request.setattribute ("flag", new Boolean (flag)); path = "delete_do.jsp"; }} else {// это означает отсутствие параметров, незаконного запроса клиента} request.getRequestDispatcher (path) .forward (request, response); }}; / * <servlet> <vervlet-name> note </servlet-name> <servlet-class> cn.mldn.lxh.note.servlet.noteservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> note </servlet-name> <url-pattern>/note/note_mvc/note </url-mapping>/note_mvc/note </reer-mapating>/note_mvc/note </url-mapating>/note_mvc/notempation>/note_mp list_notes.jsp
<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*"%> <%@ page import="cn.mldn.lxh.note.vo.*"%> <html> <head> <title>MVC+DAO Message Management Program-Login</title> </head> <body> <center> <h1>Message Пример управления MVC + реализация DAO </h1> <hr> <br> <% // Запрос преобразования кодирования. Setcharacterencoding ("GB2312"); if (session.getattribute ("uname")! = null) {// пользователь регистрируется в %> < % // Если есть контент, измените переменную i. Если нет, нет никакой подсказки для содержания на основе значения I int i = 0; String Keyword = request.getParameter ("Keyword"); Список всех = null; all = (list) request.getattribute ("all"); %> <form action = "note" method = "post"> Пожалуйста, введите содержимое запроса: <input type = "text" name = "ключевое слово"> <input type = "hidden" name = "value =" selectbylike "> <inpute =" Vade "value =" Query "> </form> </h3> <a href =" insert.jsp "> Добавить новое сообщение </h3> <a href =" <Td> идентификатор сообщения </td> <td> title </td> <td> Автор </td> <td> content </td> <td> delete </td> </tr> <% iterator iter = all.iterator (); while (iter.hasnext ()) {примечание = (примечание) iter.next (); i ++; // Выполнить печать цикла для распечатки всех содержимого в форме таблицы // Удалить контент из базы данных int id = note.getid (); String title = note.getTitle (); String Автор = note.getAuthor (); String Content = note.getContent (); // Поскольку ключевое слово красное, вам нужно получить ключевые слова запроса здесь // String Keyword = request.getParameter ("Keyword"); if (Keyword! = null) {// Данные должны быть RedDited title = title.replaceall (ключевое слово, "<font color =/" red/">"+ключевое слово+"</font>"); Author = Author.ReplAceall (ключевое слово, "<font color =/" red/">" +ключевое слово +"</font>"); content = content.replaceall (ключевое слово, "<font color =/" red/">" +ключевое слово +"</font>"); }%> <tr> <td> <%= id%> </td> <td> <a href = "Примечание? id = <%= id%> & status = selectId"> <%= title%> </a> </td> <td> <%= Автор%> </td> <td> <%= content%> </td> <td> href = "Примечание? id = <%= id%> & status = delete"> delete </a> </td> </tr> <%} // определить, изменяется ли значение I. Если это изменится, это означает, что есть контент. В противном случае, нет контента, если (i == 0) {// Сделать подсказку %> <Tr> <td colSpan = "5"> ничего! ! ! </td> </tr> <%}%> </table> <%} else {// Пользователь не вошел в систему, предложите пользователю входить в систему и перейти к response.setheader ("refresh", "2; url = login.jsp"); %> Вы еще не вошли в систему, пожалуйста, войдите в систему! ! ! <br> Он автоматически прыгнет в окно входа через две секунды! ! ! <br> Если нет прыжка, нажмите <a href = "login.jsp"> здесь </a>! ! ! <br> < %} %> </center> </body> </html>Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.