• 教育后台管理系统:查询课程列表信息


    1 需求分析

      页面分析,需要展示哪些数据

      

    2 编写代码 

    2.1 Dao层编写

    1. 修改CourseDao,添加 findCourseList 方法

    接口 CourseDao
        //查询课程列表信息
        public List<Course> findCourseList();
    
    实现类 CourseDaoImpl
        @Override
        public List<Course> findCourseList() {
    
            try {
                //1.创建QueryRunner
                QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());
    
                //2.编写SQL
           String sql = "SELECT id,course_name,price,sort_num,STATUS FROM course where id_del =  ?";
    
                //3.执行查询
              List<Course> courseList = qr.query(sql, new BeanListHandler<Course>(Course.class), 0);
    
                return courseList;
    
            } catch (SQLException e) {
                e.printStackTrace();
                return null;
            }
        }

    逻辑删除

    • 逻辑删除的本质是修改操作,所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识,做修改操作。

    • 比如: 0是未删除,1是删除。在逻辑上数据是被删除的,但数据本身依然存在库中。

     

     

    物理删除

    • 物理删除就是真正的从数据库中做删除操作了

    2.2 Service层编写

    修改CourseService 添加 findCourseList 方法

    接口 CourseService 
        public List<Course> findCourseList();
    
    实现类 CourseServiceImpl
        //创建 CourseDao
        CourseDao courseDao = new CourseDaoImpl();
    
        @Override
        public List<Course> findCourseList() {
    
            //调用Dao 进行查询
            return courseDao.findCourseList();
        }

    2.3 Servlet编写

    2.3.1 接口开发规范

      我们在做的是一个前后端分离项目、需要通过接口文档对接的项目. 所以开发过程中要仔细查看前端所需的api接口和参数字段

      为了严格按照接口进行开发,提高效率,对请求及响应格式进行规范化。

     

    开发规范

     

    1、get 请求时,采用key/value格式请求,Servlet中可以使用 getParameter() 获取。
    2、post请求时有三种数据格式 第一种: Json数据 ,jsonl类型的数据 Servlet中使用 fastjson进行解析 第二种: 提交form表单数据 第三种: 文件等多部件类型(multipart/form-data)
    3、响应结果统一格式为json

    为什么使用JSON?

    数据格式比较简单, 易于读写, JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护

     

     

    本项目使用的是 JSON解析工具为阿里巴巴的fastjson, maven工程导入下面的依赖即可.

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.1.37</version>
    </dependency>
    
    <dependency>
        <groupId>com.colobu</groupId>
        <artifactId>fastjson-jaxrs-json-provider</artifactId>
        <version>0.3.1</version>
    </dependency>
    2.3.2 接口文档

    前端的开发基于服务端编写的接口,如果前端人员等待服务端人员将接口开发完毕再去开发前端内容这样做效率是 非常低下的,

    所以当接口定义完成,可以使用工具生成接口文档,前端人员查看接口文档即可进行前端开发,这样 前端和服务人员并行开发,大大提高了生产效率.

     

    2.3.3 编写CourseServlet

      在CourseServlet中,添加 findCourseList方法

    @WebServlet("/course")
    public class CourseServlet extends BaseServlet {
    
        //查询课程信息列表
        public void findCourseList(HttpServletRequest request, HttpServletResponse response){
    
            try {
                //1.接收参数
    
                //2.业务处理
                CourseService cs = new CourseServiceImpl();
                List<Course> courseList = cs.findCourseList();
    
                //3.响应结果
                //SimplePropertyPreFilter 指定要转换的JSON字段
                SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Course.class,
                        "id","course_name","price","sort_num","status");
    
                String result = JSON.toJSONString(courseList,filter);
                response.getWriter().print(result);
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

     

  • 相关阅读:
    <转>iOS SDK中使用NSXMLParser解析XML
    [原创]闲来无事,写了个c#的数据库附加工具,现附上源代码
    [转载]php数组操作foreach、each、reset、list
    [原创]xml序列化
    [原创]一个简单的药店用的会员积分管理系统
    [原创]我的cms项目
    简洁、标准的对联广告代码
    C#混淆 xenocode使用说明
    .net 随机数
    [原创]c# as用法
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15481583.html
Copyright © 2020-2023  润新知