1。我们希望在一个Servlet中可以有多个请求处理方法!
2.客户端发送请求时,必须多给出一个参数
domain:User
dao:UserDao
service:UserService
servlet:UserServlet
void init(ServletRequest,ServletResponse)
throws IOException,ServletException{
在这里让它去调用其他方法!
要求:用户发出请求时,必须给出一个参数,来说明要调用哪一个方法
//获取参数,通过参数名称来确定要调用的方法)
}
Service事物
在Service中使用ThreadLocal来完成事物,为将来学习Spring事务打基础!
1.DAO中的事务
2.Service才是处理事务的地方
我们要清楚一件事,DAO中不是处理事物的地方,因为DAO中的每个方法都是对数据库的操作,而Service中的方法才是对应一个业务逻辑。也就是说我们需要在Service中的一个方法中调用DAO的多个方法,而这些方法应该在一起事务中
怎样才能让DAO的多个方法使用相同的Connection尼?
在Service中调用DAO的多个方法时,传递相同的Connection就可以了
客户关系管理系统
- 导入原型(只有页面,但没有功能的一个项目,功能都是直接跳转!)
- 功能分析:
1.添加客户
2.查询所有客户
3.编辑客户:
加载这个客户到表单中显示
修改客户
删除客户
多条件组合查询
- 创建表
- 创建包:公司名,项目名,分层
cn.itcast.cstm.domain:Customer,它与表单和t_customer表对应
cn.itcast.cstm.dao:CustomerDao
cn.itcast.cstm.service:CustomerService,它没有业务,其实它不存在都可以!
cn.itcast.cstm.web.servlet:CustomerServelt - 导包:
mysql驱动
c3p0
dbutils
自己的工具jdbcUtils,它在itcast- tools.jar
beantuils、logging
添加客户
add.jsp 表单页面
CustomerServlet#add()
1.封装表单数据到Customer对象中
2.补:uuid()
3.把Customer对象传递给service方法完成任务
4.保存成功信息,转发到msg.jsp
CustomerService#add(Customer)
直接调用dao
CustomerDao#add(Customer)
1.给出sql模块
2.给出参数
3.调用queryRunner.update()
成功信息request域
查询所有
msg.jsp显示成功信息