web項目總結——通過jsp+servlet實現對oracle的增刪改查功能


1、DAO模式 分包:依次建立

entity:實體包,放的是跟oracle數據庫中表結構相對應的對象的屬性,也就是這個對象有什么

dao:增刪改查接口,實現增刪改查的具體方法

service:同dao,也是一個接口,一個接口的實現類,方法什么的都跟dao差不多

servlet:新建servlet類,繼承HttpServlet類,一個方法建立一個servlet類,根據不同的方法選擇使用doGet()、doPost()方法 、services()既包含doGet 又包含doPost

新建jsp頁面

這些都是新建web項目

2、save方法,對應sql語句insert into

數據原型是干啥使的,當用戶要存入一條新紀錄時,用戶在jsp頁面輸入,在servlet獲得,存入實體對象,調用service層的save方法,service層再return給dao層

,再往數據庫插入

3、update更新數據方法跟add差不多。比add還要簡單多了,直接拿到id調用update方法,就會返回一個完整的實體對象,把實體對象存到作用域,轉發給edit.jsp;

不同點:在jsp頁面需要回填數據到表單    用el表達式 


 分頁查詢功能

java中萬物皆對象,在util包中新建個pageBean對象,包含pageIndex頁號、List  results 查詢結果集、rowCount總行數/pageSize每頁行數=pageCount總頁數

在dao層寫接口。也叫find方法,傳參pageIndex頁號(在servlet層給出初始值,在jsp層需要用戶傳入pageSize每頁行數(在servlet層給規定每頁顯示幾個)、  模糊查詢搜索字段名(表中的)(需要用戶給)

寫實現類。先連接數據庫,先執行查詢所有記錄數的sql語句,得到總頁數與首尾行號

如果為true則再執行分頁的sql語句,從結果集中取出來封裝到book實體類,再封裝pageBean對象

dao層負責想方設法從數據庫得到數據;servlet層負責從jsp拿到數據,轉發或重定向到jsp

下面來說說servlet層:先考慮是doGet還是doPost,doGet是想查詢數據,搜索框,所以得先解決中文亂碼,先設pageIndex=1,pageSize=2,判斷瀏覽器是否傳頁號

 

 

a、數據分頁查詢

b、數據分頁顯示

復習步驟先從數據庫開始,sql語句,jdbc將java程序與數據庫連接起來,可以使java程序操作數據庫中的數據

由底層開始,層層往上,最后一直到jsp顯示層

1、sql語句

count()聚合函數    計總行數

row_number() over (partition by deptno order by sal desc)分區子句按部門編號分區,把查詢結果分為不同的組,類似於group by;排序子句,將每個分區排序。為查詢結果分配行號

order by desc 降序/ asc 升序 默認

select * from  book  查詢book表中 的所有列

select 結果分配行號,book表中的所有列 from book where title like ?

select row_number() over (order by id desc) as rnbook表中的所有列 from book  b where title like ?

列名起別名是as 名字   表名起別名 是直接名字即可

把表中所有列查詢結果都分配行號,id降序,模糊查詢

select t.*
from(select  ROW_NUMBER() OVER(order by id desc) as rn,b.*
        from book  b
        where title like '%a%') t
where t.rn between 2 and 14;

按照查詢條件把我想要的所有行顯示出來了,但是我想分頁顯示,就要設置每一頁顯示的首尾行號,這樣就能確保每一頁准確無誤的顯示了

查詢步驟

1、先獲得符合查詢條件的總行數

select count(*) as count from Book where title like '%a%';

把sql語句where like 查詢條件變成一個搜索欄,新建一個pageBean對象用來顯示分頁情況

先和數據庫建立連接,執行sql語句,得到總行數,求出總頁數,pageIndex 和pageSize servlet層會先給個默認值的

設置每頁首尾行號

2、再執行一次sql語句

開始分頁了

從數據庫里把數據取出來(結果集)DAO----->Entity放到對象中啊,集合中啊         service層返回DAO層           service----->servlet<-----jsp

 3、servlet層

在list頁面調用分頁查詢方法

因為需要用戶傳參,所以就得先做非空判斷

 在servlet層,只要轉發就寫的是xxx.jsp  

只要重定向就是“list”  response.sendRedirect("list");

4、index.jsp

搜索欄

URL開頭的斜線總結

1.在HTML標簽中設置src屬性、href屬性時
開頭的"/"代表服務器根目錄(web-apps)   Tomcat目錄結構,web應用發布目錄

2.在配置Servlet或進行轉發時
開頭的"/"代表項目的WebRoot目錄

3.在重定向時,開頭的"/"代表服務器根目錄(web-apps)

轉發重定向時的路徑問題:

轉發時的路徑,基本都是xxx.jsp頁面,因為有數據要轉發到頁面然后顯示給用戶看

重定向時路徑有兩種情況:a.退出登陸直接重定向到login.jsp頁面;注冊成功后重定向到login.jsp頁面;路徑都是同一級的

b.登陸成功后要訪問后台background/list;添加成功后要


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM