码迷,mamicode.com
首页 > 其他好文 > 详细

1.在线商城

时间:2020-06-21 17:57:33      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:edit   gen   ade   赋值   mvc   new   except   parse   信息   

  • 简介

前端页面+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语句

1.在线商城

标签:edit   gen   ade   赋值   mvc   new   except   parse   信息   

原文地址:https://www.cnblogs.com/ak918xp/p/13173139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!