1.在线商城
Posted ak918xp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.在线商城相关的知识,希望对你有一定的参考价值。
- 简介
前端页面+jdbc数据库编程,数据集从网上爬取。结构是MVC模式,jsp+servlet+JavaBean 。M是指业务模型,V是指用户界面,C则是控制器。最典型的MVC就是jsp+servlet+javabean模式。
Model:处理业务数据和业务逻辑的部分,将同时被CONTROLLER和VIEW访问,被CONTROLLER用来传输数据给到VIEW层。
View:主要都是一些ASPX页面文件,他们不包括后台代码,将一个模型中包含的某些方面的数据展现出来,而隐藏另外一些数据。视图向模型请求,以获取需要表现的数据。它也可以通过发送相应的命令,来修改模型中的数据。
Controller:是整个MVC架构的核心, 控制器充当用户和应用程序之间的连接。
- 设计
设计软件功能,每个模块划分。功能和性能,输入数据和输出数据,用到的数据类型。
画软件流程图
登陆
注册
商店页面
详细信息
结账
- 详细实现
Dao包:
用来存放对数据库的操作,商品和用户对数据的操作
baseDao:定义数据库四大常量、数据库的连接过程、数据库的关闭过程
驱动,url,用户名,密码
加载驱动,创建连接,异常抛出
关闭结果集对象rs.close();、关闭执行器对象pstmt.close()、关闭连接对象conn.close()
booksDao:定义对商品的查询删除函数:
eg:public 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; //价格
get,set方法,获取和改变成员变量的值,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.在线商城的主要内容,如果未能解决你的问题,请参考以下文章