• 1.在线商城


    • 简介

    前端页面+jdbc数据库编程,数据集从网上爬取。结构是MVC模式,jsp+servlet+JavaBean M是指业务模型,V是指用户界面,C则是控制器。最典型的MVC就是jsp+servlet+javabean模式

    Model:处理业务数据和业务逻辑的部分,将同时被CONTROLLERVIEW访问,被CONTROLLER用来传输数据给到VIEW层。

    View:主要都是一些ASPX页面文件,他们不包括后台代码,将一个模型中包含的某些方面的数据展现出来,而隐藏另外一些数据。视图向模型请求,以获取需要表现的数据。它也可以通过发送相应的命令,来修改模型中的数据。

    Controller:是整个MVC架构的核心, 控制器充当用户和应用程序之间的连接。

     

    • 设计

    设计软件功能,每个模块划分。功能和性能,输入数据和输出数据,用到的数据类型。

    画软件流程图

    登陆

    注册

    商店页面

    详细信息

    结账

     

    • 详细实现

    Dao包:

    用来存放对数据库的操作,商品和用户对数据的操作

    baseDao:定义数据库四大常量、数据库的连接过程、数据库的关闭过程

    驱动,url,用户名,密码

    加载驱动,创建连接,异常抛出

    关闭结果集对象rs.close();、关闭执行器对象pstmt.close()、关闭连接对象conn.close()

    booksDao:定义对商品的查询删除函数:

    egpublic boolean isDeleteBook(String isbn);

    usersDao:定义用户登陆注册,面向接口编程,增删改查的函数,不实现

    此接口实现对用户的需求的确认面向接口编程的好处:开闭原则

    接口编程:制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)

    接口编程的好处:高内聚、低耦合,提高可维护性

     

    Impl实现包:

    定义访问数据库三大对象Connection (连接)Statement (语句)ResultSet (结果集)

    1) 获取Connection(连接)
    2) 利用连接创建Statement(语句)
    3) 利用Statement(语句)传入实际sql语句操作(查询,更新)数据库。
    4) 关闭连接。

    例如删改查:update users set name=?, pwd=? where id=?

    eg:实现用户注册:

    //先定义返回值
    
    boolean ret=false;
    
    //定义数据库三大对象
    
    Connection conn=null;
    
    PreparedStatement pstmt=null;
    
    ResultSet rs=null;
    
    //JDBC 6步操作
    
    //1 加载驱动
    
    //2 创建连接
    
    conn=BaseDao.getConn();
    
    //3 写出一个SQL
    
    String sql="insert into users(name, pwd) values(?, ?)";
    
    try {
    
    //4 创建SQL执行器
    
    pstmt=conn.prepareStatement(sql);
    
      //设置?的值
    
    pstmt.setString(1, isbn);
    
    //5 执行SQL得到结果
    
    rs=pstmt.executeQuery();
    
      //循环遍历rs
    
    if(rs.next()) {
    
    //为对象属性赋值
    
      //先查询数据库表
    
    String copyright=rs.getString("COPYRIGHT");
    
    String title=rs.getString("TITLE");
    
    String imagefile=rs.getString("IMAGEFILE");
    
    int editionnumber=rs.getInt("EDITIONNUMBER");
    
    int publisherid=rs.getInt("PUBLISHERID");
    
    double price=rs.getDouble("PRICE");
    
      //根据查询结果为对象赋值
    
    book.setIsbn(isbn);
    
    book.setTitle(title);
    
    book.setCopyright(copyright);
    
    book.setImagefile(imagefile);
    
    book.setEditionnumber(editionnumber);
    
    book.setPublisherid(publisherid);
    
    book.setPrice(price);
    
    }
    
    } catch (SQLException e) {
    
    // TODO Auto-generated catch block
    
    e.printStackTrace();
    
    } finally {
    
    //6 释放资源
    
    BaseDao.closeAll(conn, pstmt, rs);
    
    }
    
    return book;
    
    }

    实体类entity包:

    对数据库中的数据格式进行操作:

    private String isbn;           //图书编号
    
    private String title;          //书名
    
    private int editionnumber;  //版本号
    
    private String copyright;      //版权
    
    private int publisherid;     //出版社编号
    
    private String imagefile;      //图书封面
    
    private double price;    //价格

    getset方法,获取和改变成员变量的值,JavaBean规范规定只使用get/set访问成员变量

    set就用:this.xx=xx, get就用:return xx

    serve包:

    //中文处理:
    
    request.setCharacterEncoding("gbk");
    
    //接收客户端的请求:
    
    String xxx=request.getParameter ("uid");
    
    //getParameter得到的都是String类型的。或者是用于读取提交的表单中的值
    
    //调用业务层:
    
    BookDao = new BooksDaoImpl或者UsersDao = new UsersDaoImpl
    
    //转发视图
    
    doGet(HttpServletRequest request, HttpServletResponse response)
    
    doPost(HttpServletRequest request, HttpServletResponse response)

    最后根据具体的内容,redirect页面或者forward页面

    WebComtent

    调试,写爬虫

    爬虫的搭建:

    def parse

    正则表达式选择爬取内容

    处理爬取内容,使用item_loader.css+标题,内容,标签,存储

    def start request

    爬取网站,使用selenium模拟鼠标操作,点击验证码登录

    解析列表中所有网址的url

    pipeline

    输入执行的sql语句

  • 相关阅读:
    BlockQueue学习笔记
    XZ文件压缩解压(转)
    github/gitee:fork别人的源码仓库并contribute代码
    Git安装配置
    整合MyBatisPlus
    Vue模块化开发
    前端小知识
    Node.js 安装配置
    Maven安装配置
    服务器上数据库被删优化办法
  • 原文地址:https://www.cnblogs.com/ak918xp/p/13173139.html
Copyright © 2020-2023  润新知