<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 問題01:三層架構 ![](https://img.kancloud.cn/6e/86/6e864082bc451049a7efbcefca8e3711_1115x181.png) ## 問題02:DAO設計模式 ![](https://img.kancloud.cn/40/a6/40a643ffc975de9d8f5cd4f21a2a6917_1092x415.png) > 數據訪問對象模式(Data Access Object Pattern)或 DAO 模式用于把低級的數據訪問 API 或操作從高級的業務服務中分離出來。 ## 問題03:程序結構示意圖 ![](https://img.kancloud.cn/17/76/1776f85b054148d598c627e5c787cf53_1105x328.png) ## 問題04:設計公共DAO接口 ``` public interface GenericDAO<E,PK extends Serializable> { public boolean insert (E data); public boolean delete(PK id); public boolean update(PK id, E data); public ArrayList<E> selectAll(); public E select(PK id); } ``` ## 問題05:設計POJO的DAO接口與實現類 ``` public class User { private String username; private String password; …… ``` ``` import cn.pzhu.bean.User; public interface UserDAO extends GenericDAO<User, String>{ } ``` ## 問題06:設計業務層接口以及實現類 ### 業務層接口 針對業務進行接口設計:參數列表和返回值 ### 業務層實現 * 依賴于DAO層 * 實現業務功能 ## 問題07:實現DAO層 ### 1. 獲得連接 ``` Connection connection = JDBCUtil.getConnection(); ``` ### 2. 實現CRUD * [ ] 獲得連接 * [ ] 編寫SQL * [ ] 創建命令 * [ ] 執行命令 * [ ] 處理結果 * 返回T * 返回List<T> * 返回int或boolean * [ ] 釋放資源 ## 問題08:實現業務層 ### 1. 獲得DAO對象 ``` UserDAO dao = new UserDAOImp(); XXXDAO dao = new XXXDAOImp(); ``` ### 2. 實現業務 * 返回boolean * 返回更加詳細的信息 * 返回所需數據List > * 以“用戶注冊”為例,業務只需要知道是否注冊成功,失敗的原因(一個業務) > * DAO層需要先進行查詢,然后再進行插入(兩個操作) ## 問題09:實現表現層 ### 1. 設計JSP頁面 > 以“用戶注冊”為例 ### 2. 設計Servlet控制器 ``` PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); Message msg = userService.regist(new User(username,password)); if (msg.isSuccess()) { out.println("<script>alert('"+msg.getMsg()+"!');" + "window.location.href='index.jsp'</script>"); } else { out.println("<script>alert('"+msg.getMsg()+"!');" + "window.location.href='regist.jsp'</script>"); } ``` ### 3. 功能測試
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看