第一个项目:课程后台管理系统(3) 后台系统搭建-正式开始开发

开发流程

在这里插入图片描述

需求分析及实体类设计

实体类对应数据库中的course表进行创建
在这里插入图片描述
有些字段还用不到,所以在创建实体类的时候,要确定使用字段

DAO接口的编写

在这里插入图片描述

CourseDao是对应的课程管理的Dao,是一个接口
CourseDaoImple是实现类

Service接口及实现类编写

在这里插入图片描述

/**
 *课程模块 Service层 接口
 */
public interface CourseService {
   
}
import com.lagou.service.CourseService;

/**
 * 课程模块Service层 实现类
 */

public class CourseServiceImpl implements CourseService {
   
}

CourseServlet编写

在这里插入图片描述

@WebServlet("/course")
public class CourseServlet extends BaseServlet {
   
}

这样就搭建好dao、service、web层的三层结构
搭好再做具体需求

功能1:查询课程列表信息

页面展示的数据有以下这些
在这里插入图片描述

预备知识 DbUtils的QueryRunner核心类

QueryRunner中一共有6种方法:

  • execute(执行SQL语句)
  • batch(批量处理语句)
  • insert(执行INSERT语句)
  • insertBatch(批量处理INSERT语句)
  • query(SQL中 SELECT 语句)
  • update(SQL中 INSERT, UPDATE, 或 DELETE 语句)
    query方法:
  1. T query(String sql, ResultSetHandler rsh)
    不需要替换参数来执行已给予的SELECT语句
    query(sql, new BeanHandler<User>(User.class)
  2. T query(String sql, ResultSetHandler rsh, Object… params)
    需要一个或多个替换参数来执行已给予的SELECT语句,并返回一种对象结果

编写对应的Dao层

对应上面的页面展示数据,我们要在数据库中查询的数据为:

SELECT
	id,
	course_name,
	price,
	sort_num,
	STATUS

FROM course

注意此数据库中的删除并不是真正的删除,而是给一个字段标记一下
在这里插入图片描述
在这里插入图片描述

课程列表的查询_dao层的编写

public class CourseDaoImpl implements CourseDao {
   

    @Override
    public List<Course> findCourseList() {
   
        try {
   
            //1.创建QueryRunner
            QueryRunner qr = new QueryRunner(DruidUtils.getDataSource());

            //2,编写SQL 取出is_del=0的数据(未删除数据)
            String sql = "SELECT\n" +
                    "\tid,\n" +
                    "\tcourse_name,\n" +
                    "\tprice,\n" +
                    "\tsort_num,\n" +
                    "\tSTATUS\n" +
                    "FROM course WHERE is_del = ?";
            //3.执行查询
            List<Course> courseList = qr.query(sql, new BeanListHandler<Course>(Course.class), 0);
            return courseList;
        } catch (SQLException e) {
   
            e.printStackTrace();
            return null;
        }

    }
}

课程列表的查询_service层的编写

在这里插入图片描述

public class CourseServiceImpl implements CourseService {
   
    //创建CourseDao
    CourseDao courseDao = new CourseDaoImpl();
    @Override
    public List<Course> findCourseList() {
   
        List<Course> courseList = courseDao.findCourseList();
        return null;
    }
}

Servlet编写

接口开发规范

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

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

开发规范:

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

使用JSON前要导入依赖
在接下来的开发中要遵循接口文档进行
在这里插入图片描述
例如这里我们对应的servlet
在这里插入图片描述
可见路径是正确的

课程列表查询_接口开发(Servlet内容编写)

要求如下:
在这里插入图片描述
在这里插入图片描述
最终代码如下

@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.响应结果
            String result = JSON.toJSONString(courseList);
            response.getWriter().println(result);
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }
}

接口测试一下
http://localhost:8080/lagou_edu_home/course?methodName=findCourseList
在这里插入图片描述
根据接口文档的要求可知有乱码且多了discount和is_del字段

@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.响应结果
            //SimplePropertyPreF
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值