B - S模式系统开发实训指导书120524 - 图文 下载本文

}

return rs; }

//数据库更新操作

public int executeUpdate(String sql) { int result = 0; try {

conn = getConnection();

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); }

catch (SQLException ex) { result = 0; } try {

stmt.close(); }

catch (SQLException ex1) { }

return result; }

public int executeUpdate_id(String sql) { int result = 0; try {

conn = getConnection();

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql);

String ID = \ rs = stmt.executeQuery(ID); if (rs.next()) {

int autoID = rs.getInt(\ result = autoID; } }

catch (SQLException ex) { result = 0; }

return result; }

//关闭数据库的连接 public void close() { try {

if (rs != null) { rs.close();

} }

catch (Exception e) {

e.printStackTrace(System.err); } try {

if (stmt != null) { stmt.close(); } }

catch (Exception e) {

e.printStackTrace(System.err); } try {

if (conn != null) { conn.close(); } }

catch (Exception e) {

e.printStackTrace(System.err); } } }

3.3 网上书店的详细设计与实现

1.系统设计特点

(1)页面模块化

本系统在界面设计上采用了模块化的思想,把很多页面共有部分单独集成一个模块,例如页面的头、尾等,在开发系统时,遇到这些相同的页面部分就不需要重复编写,而只要在相应位置上加上<%@include file=\即可,大大提高了开发效率。

(2)三层结构设计

本系统采用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑层和数据存储层。由于网上书店系统的功能较强,相应的代码设计比较复杂,JSP 网页文本也会变得庞大,需要大量的嵌入 Java 代码和 HTML语句,其中,Java 代码为逻辑代码,即这些代码用来完成所需要的功能。嵌入 Java 代码、HTML 语句、JavaScript 语句,使编写和维护 JSP 网页变得很困难。使用 JavaBean 可以很好地解决这一问题。将 JSP 和 JavaBean结合起来,业务逻辑处理层采用 JavaBean 实现,然后在 JSP 网页中调用,而 JSP 文本着重是网页界面设计,这会使 JSP 网页变得清晰,可以节省软件开发时间,系统的安全性、可维护性、重用性和可扩展性都大大提高。

(3)面向对象程序设计

在本系统中将图书、用户、订单等都封装成相应的类,同时每个类又都有与其对应的操作类,从而再次提高了对数据库操作的安全性和程序的可扩展性。

(4)人性化设计

本系统导航清晰,操作方便、简单,不管用户位于本“书店”的任何地方,都不会迷路。

2.类的设计

在本系统中,为了实现前台显示和业务逻辑的分离,使系统更加健壮和灵活,将网上书店中的实体都封装在类中,这些类分别是图书类、图书分类类、订单类、订单明细类、用户类、购物车类。根据实体类建立了相应的管理类,实现对实体的管理操作,这些类分别是图书管理类、图书分类管理类、用户管理类、订单和购物车管理类、登录管理类。

(1)图书类的设计

图书类是对图书实体的抽象,它包含了图书实体的所有属性及图书对象的初始化构造的方法。其部分定义如下:

package commerce; public class goods { private long Id; //序列号

private String GoodsName; //书名 ??

//图书实体的其它属性 public book() { Id = 0;

GoodsName = \?? }

public void setId(long newId) {

this.Id = newId; }

public long getId() {

return Id; } ??

//用同样方法设置和获得实体的其他属性值。 }

(2)图书管理类的设计

由于图书实体的存在,需要对图书进行查询、添加等管理操作,为了使用上的方便,将这些方法封装到图书管理类中。 该类的主要方法如下:

book_search( ):完成图书查询 delete( ):负责图书删除 insert( ):负责图书的添加 update( ):负责图书的修改

(3)购物车类的设计

这个类是对购物车实体的抽象,它包含了购物车实体的所有属性及购物车对象的初始化构造方法。主要实现订单和购物车管理。其主要方法如下: addnew( ):负责向购物车中添加图书。

modishopernum( ):负责修改购物车中图书的购买数量。 delshoper( ):负责删除购物车中图书。

shopperwrite( ):负责将购物车数据写入订单和订单明细表。 deleteorder( ):负责删除订单。 searchallorder( ):负责查询订单。

update( ):当用户付款后,负责更新订单明细表中信息。

(4)用户管理类的设计

该类主要实现用户管理。其主要方法如下: add( ):负责添加用户。

delete( ):负责删除指定 ID 的用户。 update( ):负责用户资料的修改。

getalluser( ):负责取出书店的所有用户信息。 getuserinfo( ):负责取得指定用户的详细信息 其他实体类的定义与图书类定义相似。

3.前台用户页面设计

(1)主页面 index.jsp 的设计

主页文件名是 index.jsp,页面主要的 JSP 代码如下: <%@include file=\