日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第14章WEB14-JDBC案例篇

發布時間:2025/3/18 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第14章WEB14-JDBC案例篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今日任務
? 使用JDBC技術完成對商品的添加修改查詢及分頁的操作
教學導航
教學目標
掌握JDBC的CRUD的操作
掌握JDBC的分頁操作
教學方法
案例驅動法
1.1 上次課內容回顧:
JSP的模式:

  • JSP的設計模式:
    • JSP的模式一:JSP + JavaBean設計模式:
    • JSP的模式二:JSP + Servlet + JavaBean設計模式:MVC設計模式.
      • M:Model
      • V:View
      • C:Controller
    • MVC和EE開發三層結構的關系:
    • 反射:(*****)
      • 獲得類的字節碼對象:Class對象.三種獲得的方式.
        • 類名.class;
        • 類的實例.getClass();
        • Class.forName();
      • 獲得構造器:Constructor
      • 獲得屬性:Field
      • 獲得方法:Method
        JDBC的事務管理:
    • 事務的概念:指的是邏輯上的一組操作,要么一起成功,要么一起失敗.
    • 事務的特性:
      • 原子性:事務的不可分割
      • 一致性:事務執行的前后,數據完整性保持一致.
      • 隔離性:一個事務的執行不應該受到另一個事務的干擾
      • 持久性:事務一旦結束,將會永久修改到數據庫.
    • 如果不考慮隔離性:
      • 臟讀 :一個事務讀到另一個未提交的數據.
      • 不可重復讀 :一個事務讀到另一個事務已經提交的update的數據,導致多次的查詢結果不一致.
      • 虛讀 :一個事務讀到另一個事務已經提交的insert的數據,導致多次的查詢結果不一致.
    • 解決讀問題:
      • 未提交讀:以上情況都能發生.
      • 已提交讀:解決臟讀,但是不可重復讀和虛讀有可能發生
      • 重復讀:解決臟讀和不可重復讀,但是虛讀有可能發生.
      • 串行化:可以解決以上的所有情況.
    • JDBC進行事務的管理:
      • Connection:
        • setAutoCommit(boolean flag);
        • commit();
        • rollback();
    • DBUtils進行的事務的管理:
      1.2 完成對商品的CRUD的操作,進行條件查詢,分頁查詢.1.2.1 需求:
      購物的網站中需要顯示商品的信息,在商品信息的顯示中,如果商品的信息比較多.需要將比較多的商品進行分頁的顯示.進行條件查詢.同時對商品進行修改,插入,刪除.

      1.2.2 分析:1.2.2.1 技術分析:
      使用MVC設計模式JSP + Servlet + JavaBean + JDBC實現商品信息的CRUD的操作.
      1.2.2.2 步驟分析:
      【步驟一】:創建數據庫和表
  • create database web_14;
  • use web_14;
  • create table product (
    pid varchar (96),
    pname varchar (150),
    market_price double ,
    shop_price double ,
    pimage varchar (600),
    pdate date ,
    is_hot double ,
    pdesc varchar (765),
    pflag double ,
    cid varchar (96)
    );
    【步驟二】:創建工程導入jar包.
  • msysql驅動
  • c3p0的包
  • dbutils的包
  • beanUtils的包:兩個.
  • JSTL的包:兩個
    【步驟三】:創建包結構.
    【步驟四】:創建一個首頁:
    <h1>歡迎來到商品信息管理平臺</h1>
    <h3><a href="${ pageContext.request.contextPath }/ProductFindAllServlet">查詢所有商品</a></h3>
    1.2.3 代碼實現:1.2.3.1 商品的查詢的功能:
    在首頁上點擊【查詢所有商品】鏈接:
    提交到Servlet中:
    • 調用業務層-->調用DAO:
    • 將商品列表保存到request域中:
    • 轉發到商品列表頁面:
      在商品列表的頁面中顯示商品:
      1.2.3.2 商品的添加的功能:
      在首頁點擊【添加】鏈接:跳轉到添加頁面.
      在添加頁面中輸入信息:點擊【提交】提交到Servlet
      在Servlet中:
    • 接收數據:
    • 封裝數據:
    • 調用業務層:
    • 頁面跳轉
  • 重復提交的問題:
    • 添加完商品之后,轉發到一個頁面,刷新該頁面.
    • 網速很慢,點擊提交的按鈕,其實已經在提交了但是網速慢,不停的點擊提交.
  • 解決重復提交的根本解決辦法:令牌機制(一次性).
    • 生成隨機的令牌保存在session中.
    • 在表單的提交的時候,將隨機的令牌放入到表單的隱藏字段中.
    • 在Servlet中獲得session中和表單中的令牌是否一致.
    • 如果一致執行插入操作,不一致跳轉到其他頁面.將令牌銷毀.
  • 代碼實現:
    // 判斷是否是重復提交:
    String token1 = (String)request.getSession().getAttribute("token");
    String token2 = request.getParameter("token");
    // 清空session中的令牌:
    request.getSession().removeAttribute("token");
    if(!token2.equals(token1)){
    request.setAttribute("msg", "親!您已經提交過!請不要重復提交了!");
    request.getRequestDispatcher("/jsp/msg.jsp").forward(request, response);
    return;
    }
    1.2.3.3 商品的信息的修改:
    在列表頁面上點擊【修改】鏈接:
    提交到Servlet:根據id查詢該商品.將商品的信息顯示到修改頁面:
    在修改的頁面上修改數據,點擊【提交】按鈕:
    提交到Servlet:完成商品信息的修改:
    1.2.3.4 商品的信息的刪除:
    在列表頁面上點擊【刪除】鏈接:
    提交到Servlet:
    調用業務層完成刪除的操作:
    ***** 擴展刪除多條記錄:
    1.2.3.5 商品模糊查詢:
    1.2.3.6 商品分頁顯示:
    分頁條: 【首頁】【上一頁】[1][2][3][4]【下一頁】【尾頁】
    分頁功能的實現:
  • 物理分頁:一次只查10條記錄,點擊下一頁,再去查詢后10條.使用SQL語句進行控制的分頁.
    • 缺點:經常需要和數據庫交互.
    • 優點:數據量特別大,不會導致內存的溢出.
  • 邏輯分頁:一次性將所有數據全都查詢出來,根據需要進行截取.List集合進行控制. subList();
    • 缺點:數據量如果特別大,容易導致內存溢出.
    • 優點:與數據庫交互次數少.
  • 不同的數據庫對分頁的語句也是不一樣的:
    • MYSQL進行分頁: 使用limit關鍵字.
      • select * from xxx where .. Group by ... Having ... Order by ... limit a,b; -- a:從哪開始 b:查詢的記錄數.
      • 根據頁數計算 limit后面的兩個參數:
        • currPage begin pageSize
          1 0 10
          2 10 10
          3 20 10
        • begin = (currPage - 1) * pageSize;
    • 參數的傳遞:
      • 前臺--->后臺:currPage
      • 后臺--->前臺:currPage,totalPage(總頁數),totalCount(總記錄數),pageSize,List集合.
    • 使用JavaBean封裝參數:
      • 后臺--->前臺:傳遞一個JavaBean就可以.
    • Oracle進行分頁: 使用SQL語句嵌套.
    • SQL Server數據庫進行分頁: 使用 top 關鍵字.
  • 在首頁上添加一個分頁查詢的鏈接:

轉載于:https://blog.51cto.com/13587708/2102936

總結

以上是生活随笔為你收集整理的第14章WEB14-JDBC案例篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品超碰 | www在线观看视频 | 无码精品在线视频 | 牛牛影视一区二区 | 暖暖成人免费视频 | 永久免费在线播放 | 免费极品av一视觉盛宴 | 国产一级片子 | 国产三级福利 | 美女扒开粉嫩的尿囗给男生桶 | av网址网站 | 成人国产在线视频 | 亚洲综合久 | 91福利在线免费观看 | 日韩欧美理论 | 日韩欧美不卡 | 波多野结衣一区在线 | 国产成人一区二区三区影院在线 | 香蕉网站在线观看 | 性欧美色图| 久久亚洲国产成人精品性色 | 男生舔女生的屁股 | 精品人妻一区二区三区四区不卡 | 欧美日韩福利视频 | 国产二级毛片 | 91好色先生 | 免费日韩成人 | 欧美日一本| 草碰在线视频 | 日韩av在线直播 | 国产精品自拍av | 涩涩网站在线观看 | 成人aaa视频 | 久久久亚洲av波多野结衣 | 九九精品视频在线观看 | a天堂视频 | 大香蕉精品一区 | 嫩草视频在线免费观看 | 91精品国产色综合久久不卡98 | 国产精品毛片久久久久久久av | 夜色综合网| 欧美在线一区二区三区四区 | 亚洲一本在线 | 国产成人一区二区三区 | 日本嫩草影院 | 精品美女久久 | 黄色激情网站 | 啊v视频在线 | 搡老岳熟女国产熟妇 | 色婷婷久久久 | 天天爽天天 | 午夜窝窝 | 亚洲一区二区三区播放 | 欧美性videos高清精品 | 97超碰超碰| 黄色小视频免费 | 一级黄色小视频 | 91大神福利视频 | 青青草av在线播放 | 中文亚洲av片不卡在线观看 | 欧美成人777 | 国产18p| 久久神马影院 | 国产xx在线观看 | 91性色| 黄色av一级| 国产男女猛烈无遮挡免费视频 | 成人免费看片' | 少妇无码一区二区三区免费 | 桃色成人网 | 中文一级片 | 殴美黄色大片 | 日韩av无码中文字幕 | 久久机热 | 日韩视频一区二区三区四区 | 欧美黄色a级大片 | 午夜久久久久久久久 | 一区精品二区国产 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 欧美变态另类刺激 | 婷婷调教口舌奴ⅴk | 假日游船| 亚洲一区影视 | 国内三级在线 | 久操av在线| 俄罗斯毛片基地 | yjizz视频| 日本在线一区二区三区 | 西西4444www大胆无视频 | 亚洲天堂一级片 | 亚洲爽爽 | 五月婷在线观看 | 成人深夜网站 | 在线免费a视频 | 亚洲无打码 | 中文字幕福利视频 | 人体裸体bbb欣赏 | 成人97 | 波多野结衣一二三四区 |