关于java的三层结构设计

简介: 关于java的三层结构设计

1.第一层是dao层


1.png


dao包下面有一个impl包,这个包下面存放的是接口的实现类,而接口就是直接在dao包下面。


dao接口:


public List<Course> findCourseList();


dao层接口实现类 – 就是写一些关于数据库的东西,这个就是实现接口中的方法。


//    查询课程列表信息
    @Override
    public List<Course> findCourseList() {
        try {
//        1. 创建QueryRunner
            QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
//        2. 编写sql 判断是否删除 取出is_del = 0 的数据,未删除的数据
            String sql = "SELECT id,course_name,price,sort_num FROM course WHERE is_del = ?";
//        3. 执行查询
            List<Course> query = qr.query(sql, new BeanListHandler<Course>(Course.class), 0);
//        4. 返回数据
            return query;
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }


2.第二层是service层 – service层就是new一个dao层对象,之后打点调用dao层的方法。

接口层


public List<Course> findCourseList();


实现层


//    创建courseDao对象
    CourseDao courseDao = new CourseDaoImpl();
//    查询课程列表信息
    @Override
    public List<Course> findCourseList() {
        List<Course> courseList = courseDao.findCourseList();
        return courseList;
    }


3.web层 – servlet层 – 这一层就是new出一个新的service对象,然后打点调用方法。


//    查询课程信息列表
    public void findCourseList(HttpServletRequest request , HttpServletResponse response) {
//        1. 接收参数
//        2. 业务处理
        CourseService cs = new CourseServiceImpl();
        List<Course> courseList = cs.findCourseList();
//        3. 响应结果
//        解决乱码问题 + 只显示需要显示的内容
        SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Course.class,
                "id","course_name","price","sort_num","status");
        String result = JSON.toJSONString(courseList,filter);  // 客户端需要JSON格式的字符串
        try {
            response.getWriter().print(result);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }



相关文章
|
JSON Dubbo Cloud Native
Triple 协议支持 Java 异常回传的设计与实现
通过对 Dubbo 3.0 新增自定义异常的版本迭代中可以看出,尽管只能新增一个小小的特性,流程下并不复杂,但由于要考虑互通、兼容和协议的设计理念,因此思考和讨论的时间可能比写代码的时间更多。
Triple 协议支持 Java 异常回传的设计与实现
|
存储 SQL 设计模式
Java设计本地缓存
Java设计本地缓存
Java设计本地缓存
|
前端开发 Java 微服务
JAVA轻量级错误码设计最佳实践
JAVA轻量级错误码设计最佳实践
1739 0
JAVA轻量级错误码设计最佳实践
|
JSON Dubbo Cloud Native
Triple 协议支持 Java 异常回传的设计与实现
通过对 Dubbo 3.0 新增自定义异常的版本迭代中可以看出,尽管只能新增一个小小的特性,流程下并不复杂,但由于要考虑互通、兼容和协议的设计理念,因此思考和讨论的时间可能比写代码的时间更多。
Triple 协议支持 Java 异常回传的设计与实现
|
JavaScript Java 关系型数据库
基于Java的企业新闻管理系统的设计与实现
基于Java的企业新闻管理系统的设计与实现
272 0
基于Java的企业新闻管理系统的设计与实现
|
Java 关系型数据库 MySQL
1小时学会通过Java Swing Design设计java图形化(3)
1小时学会通过Java Swing Design设计java图形化
163 0
1小时学会通过Java Swing Design设计java图形化(3)
|
Java 容器
1小时学会通过Java Swing Design设计java图形化(2)
1小时学会通过Java Swing Design设计java图形化
167 0
1小时学会通过Java Swing Design设计java图形化(2)
|
IDE Java 数据库连接
1小时学会通过Java Swing Design设计java图形化(1)
1小时学会通过Java Swing Design设计java图形化
139 0
1小时学会通过Java Swing Design设计java图形化(1)
|
Java
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
85 0
java学习第十三天笔记-面向对象249-继承中成员方法和成员变量的特点-利用方法的重写去设计继承结构
|
Java
java学习第七天笔记-方法146-设计对象和使用
java学习第七天笔记-方法146-设计对象和使用
52 0
java学习第七天笔记-方法146-设计对象和使用