1狡逢。我們希望在一個(gè)Servlet中可以有多個(gè)請求處理方法阵难!
2.客戶端發(fā)送請求時(shí),必須多給出一個(gè)參數(shù)
domain:User
dao:UserDao
service:UserService
servlet:UserServlet
void init(ServletRequest,ServletResponse)
throws IOException,ServletException{
在這里讓它去調(diào)用其他方法!
要求:用戶發(fā)出請求時(shí),必須給出一個(gè)參數(shù)窒升,來說明要調(diào)用哪一個(gè)方法
//獲取參數(shù),通過參數(shù)名稱來確定要調(diào)用的方法)
}
Service事物
在Service中使用ThreadLocal來完成事物慕匠,為將來學(xué)習(xí)Spring事務(wù)打基礎(chǔ)饱须!
1.DAO中的事務(wù)
2.Service才是處理事務(wù)的地方
我們要清楚一件事,DAO中不是處理事物的地方台谊,因?yàn)镈AO中的每個(gè)方法都是對數(shù)據(jù)庫的操作蓉媳,而Service中的方法才是對應(yīng)一個(gè)業(yè)務(wù)邏輯。也就是說我們需要在Service中的一個(gè)方法中調(diào)用DAO的多個(gè)方法锅铅,而這些方法應(yīng)該在一起事務(wù)中
怎樣才能讓DAO的多個(gè)方法使用相同的Connection尼酪呻?
在Service中調(diào)用DAO的多個(gè)方法時(shí),傳遞相同的Connection就可以了
客戶關(guān)系管理系統(tǒng)
- 導(dǎo)入原型(只有頁面盐须,但沒有功能的一個(gè)項(xiàng)目玩荠,功能都是直接跳轉(zhuǎn)!)
- 功能分析:
1.添加客戶
2.查詢所有客戶
3.編輯客戶:
加載這個(gè)客戶到表單中顯示
修改客戶
刪除客戶
多條件組合查詢
- 創(chuàng)建表
- 創(chuàng)建包:公司名贼邓,項(xiàng)目名阶冈,分層
cn.itcast.cstm.domain:Customer,它與表單和t_customer表對應(yīng)
cn.itcast.cstm.dao:CustomerDao
cn.itcast.cstm.service:CustomerService,它沒有業(yè)務(wù),其實(shí)它不存在都可以塑径!
cn.itcast.cstm.web.servlet:CustomerServelt - 導(dǎo)包:
mysql驅(qū)動(dòng)
c3p0
dbutils
自己的工具jdbcUtils,它在itcast- tools.jar
beantuils女坑、logging
添加客戶
add.jsp 表單頁面
CustomerServlet#add()
1.封裝表單數(shù)據(jù)到Customer對象中
2.補(bǔ):uuid()
3.把Customer對象傳遞給service方法完成任務(wù)
4.保存成功信息,轉(zhuǎn)發(fā)到msg.jsp
CustomerService#add(Customer)
直接調(diào)用dao
CustomerDao#add(Customer)
1.給出sql模塊
2.給出參數(shù)
3.調(diào)用queryRunner.update()
成功信息request域
查詢所有
msg.jsp顯示成功信息