一:代码分层

com.guangming.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据
com.guangming.servlet 存放servlet相关的类 例如:StudentServlet 处理 与浏览器交互的类
com.guangmingentity 存放实体类 例如 Student 接受数据库对象模型
com.guangming.util 存放工具类 例如 DBUtil

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

如图:

代码分层之模拟servlet调用dao 随笔 第1张

二:模拟servlet调用dao

步骤: 

  1 .创建一个数据库表 Student( id name age )

代码分层之模拟servlet调用dao 随笔 第2张

  2 创建数据库表对应的实体类 (为什么要创建实体类?作用:以后数据库表中的数据 提取到 java中的时候 用 对象来存储)

代码分层之模拟servlet调用dao 随笔 第3张

代码分层之模拟servlet调用dao 随笔 第4张

  3 创建DAO

    A 组成 两部分: 接口 ( 声明 )和 实现类
     接口的命名规则例如: IStudentDAO I 代表这是一个接口 Student 对应业务名称(表名) DAO 后缀 表明当前是一个dao接口
     实现类的命名规则例如: StudentDAOImpl Student 代表业务名称(表名) DAOImpl 代表dao接口的实现
        为什么需要接口+实现类? 因为 我们需要一个多态的特征。
     ---------------------------------多态----------------------------------------------------------
      什么是多态? 多种状态
      如何产生多态? 继承多态 父类的引用 子类的对象 例如 : Animal a = new Dog(); 基本上不用
      接口多态 接口的应用 实现类的对象 例如: IStudentDAO dao = new StudentDAOImpl();
      为什么要使用多态? 程序解耦 解除程序的耦合性
     --------------------------------------------------------------------------------------------------
    B 接口声明的方法(接口中该写哪些方法)
    重要:根据业务需求 / CRUD 增删改查

接口代码:(声明方法) 

/**接口命名规则:
 *创建接口IStudent.I代表这是一个接口,Student代表对应业务的名称(表名),DAO后缀,表明当前是一个DAO接口
 */
public interface IStudentDAO {

    /*1.添加新学生
    * sql语句insert into Student (name,age) values(?,?);
    * @param是学生对象,里面存放着需要添加的学生信息
    * @return的boolean类型,成功返回true,失败返回false
    * 注意:两个以上的参数,使用对象传参。如该例子的Student
    * */
    boolean add(Student s);
    /*2.根据id删除学生
    * sql语句:delete from Student where id=?;
    * */
    boolean delete(int id);
    /*3.根据id修改学生
    * sql语句:update Student set name=? ,age=? where id=?;
    * */
    boolean update(Student s);
    /*4.根据id查询学生*/
    /*5.查询所有的学生*/
}

实现类代码:(对方法完成实现)

代码分层之模拟servlet调用dao 随笔 第5张

 

  4 接口中 声明 五个方法 (一个方法:返回值 参数 试想一下 这个业务的sql )
   
 A 添加新学生
    B 根据id删除学生
    C 根据id修改学生
    D 根据id查询学生
    E 查询所有学生
  5 对方法完成实现
  6 测试代码

 代码分层之模拟servlet调用dao 随笔 第6张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄