版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章诚信数码商城系统 9.1系统概述当今互联网的高速开展,改变的不仅仅是我们的沟通方式,还有我们的生活方式。建立在互联网上的电子商务网站正是在这样的环境下孕育而生的。电子商务是在互联网的环境下,基于C/S浏览器、效劳器的应用方式,实现用户的网上购物、网上交易和在线支付的新型的商业模式。诚信数码商城是基于C/S结构开发的,符合Internet特点的新型网络商城。该商城主要经营各类 、MP3/MP4、数码相机、移动存储和数码配件。顾客能够方便的进行网上交易和了解各类产品信息、平安的进行网络交易。9.2系统分析9.2.1需求分析诚信数码商城期望提供基于因特网的音像产品交易效劳,会员可以在因特网上浏
2、览各类音像产品的信息,如果用户对某个产品感兴趣,那么可以通过注册成为会员后订购该商品,系统能够在线生产相应的订单,会员提交订单后,可以查询自己的订单。诚信数码商城的员工会根据订单的情况给会员发货,完成交易。通过以上分析,不难发现本系统涉及的用户类型,主要有以下三类:普通浏览用户诚信商城会员诚信商城管理员其中,需要为普通浏览用户实现的功能主要有:查看公告信息浏览商品信息留言及查看留言需要为诚信商城会员实现的功能主要有:会员注册与系统登录修改个人注册信息购物车功能,包括添加、修改、删除和收银台结账功能。查询个人订单从系统中注销需要为诚信商城管理员实现的功能主要有:商城公告信息管理,包括公告的增加、
3、删除、修改操作。商城商品信息管理,包括商品的增加、删除、修改操作。处理会员的订单,包括订单的查看和执行。留言管理,包括留言的回复和删除。商品类别的管理,包括商品类别的增加、删除、修改操作。会员管理,包括会员信息的查看、会员的冻结和解冻操作。管理员的管理,包括管理员的查看、创立、删除、密码修改等操作。9.2.2业务实体说明通过以上需求分析,诚信商城系统中的业务实体主要包括公告(notice)、商品类别type、商品goods、订单order、订单详情order_detail、留言message、会员 member、管理员admin,下面详细介绍一下这些业务实体:公告(notice):代表一个公告
4、实体,主要属性包括公告标题、公告内容、公告添加时间等商品类别type:代表一个商品类别实体,主要属性包括类别ID,类别名称。商品goods:代表一个商品实体,主要属性包括商品类别、商品名称、商品介绍、商品品牌、商品图片、商品市场价、商品会员价、是否新品、是否特价、浏览次数、商品添加时间等。订单order:代表一个订单实体,主要属性包括订单号、产品数、用户名、真实姓名、联系 、 、 、付款方式、运送方式、折扣、订货日期、是否执行和备注等。订单详情(order_detail):代表一个订单详情实体,主要属性包括订单号、商品ID、价格和数量等。留言message:代表一个留言实体,主要属性包括留言人
5、姓名、留言标题、留言内容、留言时间、留言回复等。会员 member:代表一个会员实体,主要属性包括用户名,真实姓名、 、邮政编码、证件号、证件类型、联系 、email、会员等级、会员积分等。管理员admin:代表一个管理员实体,主要属性包括管理员名称、管理员密码。其中一个管理员可以下多个订单,一个订单也可以包括假设干商品。管理员那么可以对会员会员、订单、商品、留言、公告等进行各项维护工作。9.3总体设计9.3.1工程规划诚信数码商城是基于C/S结构开发的网站工程,整站采用JSP+Serverlet+Javabean+数据库的三层架构设计,由前台商品展示局部和后台管理局部两局部组成。前台商品展示
6、局部前台商品展示局部包括:商城公告、新品上架、特价促销、热卖排行、会员管理、查看订单、购物车、商品查询、用户留言等。 后台管理局部后台管理局部包括:公告管理、商品管理、订单管理、留言管理、类别管理、会员管理、管理员管理以及网站根本数据的维护。9.3.2系统功能结构图系统架构设计系统总体文件架构:9.4数据库逻辑结构设计对于一个系统来说,数据库的设计是必不可少的。在节中介绍了业务实体,每个业务实体在数据库中都有对应的数据表,所以分别需要创立公告(notice)表、商品类别type表、商品goods表、订单order表、订单详情order_detail表、留言message表、会员 member表
7、、管理员admin表。下面分别对这些表及其创立进行介绍。公告(notice)表用于保存商城的公告信息字段名数据类型备注idint (4)公告ID,主键titlevarchar(100)公告标题contenttext()公告内容intimedatetime公告添加时间商品类别type表用于保存商品的分类信息字段名数据类型备注typeidint (11)商品分类ID,主键typenamevarchar (20)商品分类名称商品goods表用于保存商品信息字段名数据类型备注goodsidBigint(4)商品ID,主键typeidint (11)商品分类IDgoodsnamevarchar (100
8、)商品名称introducetext商品简介pricevarchar(20)商品市场价格nowpriceVarchar(20)商品诚信网价格pictureVarchar(100)商品图片Intimedatetime商品添加时间newgoodsInt(4)是否新品saleInt(4)是否特价hitInt(4)浏览次数quantityInt(11)商品数量brandVarchar(50)商品品牌订单order表用于保存订单信息字段名数据类型备注orderidvarchar (50)订单号,主键bnumbersmallint (2)商品数量usernamevarchar (15)用户名truenam
9、evarchar (15)真实姓名addressvarchar(100) postcodeVarchar(10)邮政编码telVarchar(20)联系 payvarchar (10)付款方式carryvarchar (10)运送方式rebatevarchar (10)折扣orderdatedatetime 订货日期enforceint (11)是否执行bzvarchar (20)订单备注订单详情order_detail表用于保存订单详细信息字段名数据类型备注idbigint (8)订单详情ID,主键orderidvarchar (50)订单号goodsidbigint (20)商品号pric
10、evarchar (20)商品价格numberint (4)商品数量goodsnamevarchar (50)商品名称留言message表用于保存留言及回复留言的信息字段名数据类型备注idint (11)留言ID,主键usernamevarchar (50)留言人名称titlevarchar (50)留言标题contenttext留言内容intimedatetime 留言时间replytext 留言回复会员 member表用于保存会员相关信息字段名数据类型备注idint (11)会员ID,主键usernamevarchar (20)用户名truenamevarchar (20)真实姓名pass
11、wordvarchar20登录密码addressvarchar100 postcodevarchar20邮政编码cardnovarchar20证件号cardtypevarchar20证件类别gradeInt(4)等级amountvarchar8数量telvarchar20联系 emailvarchar100电子邮件freezeInt(4)是否冻结管理员admin表用于保存管理员信息字段名数据类型备注idint (4)管理员ID,主键administratorvarchar (30)管理员名称passwordvarchar (20)管理员密码诚信商城系统采用的是mysql数据库,开发人员可以根据
12、以上数据库逻辑结构在mysql中直接创立,也可以用本书所附光盘中的shop_db.sql文件直接运行创立。底层编码实现系统架构设计和数据库完成之后,就可以开始立足实现系统各项功能模块。系统开发采用多层架构模式实现的,即先是实现数据库层,在数据库中创立各物理表。其次是实现模型model层,主要工作是编写各实体类和DAO类。模型层实现后是编写相应业务类,实现业务层。最后是编写控制层的servlet和视图层的jsp页面。但在这些工作完成之前,还需要完成两项必要的任务,即:系统运行环境配置本系统运用的开发工具是MyEclipse,采用的操作系统是Windows XP,Web效劳器采用Tomcat 5.
13、5,开发工具包是JDK,数据库为MySql,浏览器为IE7.0. 系统页面的设计这局部静态页面工作属于美工局部,主要是系统html静态界面的设计,在些不作详述,本书静态页面详见随书所属光盘。 数据库连接实用类在“诚信商城系统中,需要进行添加、删除和获取数据库记录集等操作,而这些操作经常需要连接数据库。本系统采用了这个类将连接数据库操作进行了封装,实现封装数据库连接功能代码,保存在DBConn.java文件中。下面详细介绍这个类。指定JavaBeanDBConn保存的包,并导入所需的类包,本例将其保存到包中,代码如下:package com.honesty.util; /将该类保存到包中impo
14、rt java.sql.*; /导入提供根本的数据库编程效劳的包在构造方法DBConn中定义该类所需要的变量。通常将方法中常用的变量放在构造方法中。代码如下:public class DBConn public Connection conn=null; /定义一个 Connection对象public Statement stmt=null; /定义一个Statement对象public ResultSet rs=null; /定义一个ResultSet对象private static String dbClassName = com.mysql.jdbc.Driver; /保存驱动类的类名
15、的变量private static String dbUrl = jdbc:mysql://shop_db; /保存连接数据库的URL地址的变量private static String dbUser=root;/保存mysql登录用户名的变量private static String dbPwd=root;/保存mysql登录密码的变量创立连接数据库的方法getConnection(),该方法返回Connection对象的一个实例。getConnection()方法的代码如下:public static Connection getConnection()Connectio
16、n conn = null;try/调用class的forname方法加载驱动程序Class.forName(dbClassName).newInstance();conn=DriverManager.getConnection(dbUrl, dbUser, dbPwd);catch(Exception ee)ee.printStackTrace();if(conn = null)System.err.println(警告:DbConnectionManager.getConnection()获得数据库连接失败.rnrn链接类型:+dbClassName+rn链接位置:+dbUrl+rn用户名
17、/密码:+dbUser+/+ dbPwd);return conn;创立执行查询语句的方法executeQuery,返回值为ResultSet结果集。executeQuery方法的代码如下:public ResultSet executeQuery(String sql)tryconn = getConnection();/调用getConnection方法构造Connection对象的一个实例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = st
18、mt.executeQuery(sql);/执行查询操作catch (SQLException ex)System.err.println(ex.getMessage();return rs;创立执行更新操作的方法executeUpdate,返回值为int型的整数,代表更新的行数。executeUpdate方法的代码如下:D public int executeUpdate(String sql) int result = 0; try conn = getConnection();/调用getConnection方法构造Connection对象的一个实例conn stmt = conn.cr
19、eateStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); result = stmt.executeUpdate(sql); /执行更新操作 catch (SQLException ex) ex.printStackTrace(); result = 1; try (); catch (SQLException ex1) return result; 创立执行更新操作,并返回该操作中字段自动编号的方法executeUpdate_id。executeUpdate_id方法的代码如下:public i
20、nt 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 = select IDENTITY as id;rs = stmt.executeQuery(ID);if(rs.next()int autoID = rs.getInt(id);res
21、ult = autoID;catch(SQLException ex)result = 0;return result;创立关闭数据库连接的方法close。Close方法的代码如下:public void close()tryif(rs!=null)rs.close(); /关闭ResultSet结果集catch(Exception e)e.printStackTrace(System.err);tryif(stmt !=null)stmt.close(); /关闭Statementcatch(Exception e)e.printStackTrace(System.err);tryif(co
22、nn != null)conn.close(); /关闭Connectioncatch(Exception e)e.printStackTrace(System.err);实用基类、分页类,读者可参考书中所附源码自行解读。9.5.2模型层的实现实用基类完成后,按顺序首先实现模型层的各类文件,包括各实体类文件和相应的DAO实现类文件。下面将详细介绍商品实体类及其DAO实现类文件、订单实体类及其DAO实现类文件、会员实体类及其DAO实现类文件,其它模型层的类及其实现参见源码。商品实体类package com.honesty.javabean;import java.util.Date;/ Fiel
23、dsprivate Long goodsid; /商品idprivate Integer typeid; /商品类别private String goodsname; /商品名称private String introduce; /商品参数介绍private String price; /商品价格private String nowprice; /商品诚信网价格private String picture; /商品图片private Date intime; /商品添加时间private Integer newgoods; /是否新商品private Integer sale; /是否特价pr
24、ivate Integer hit; /商品浏览次数private Integer quantity;/数量private String brand;/品牌public Integer getQuantity() return quantity;public void setQuantity(Integer quantity) this.quantity = quantity;public String getBrand() return brand;public void setBrand(String brand) this.brand = brand;/* 默认构造函数 */public
25、 Goods()/商品类的构造方法public Goods(Long goodsid, Integer typeid, String goodsname,String introduce, String price, String nowprice, String picture,Date intime, Integer newgoods, Integer sale, Integer hit,Integer quantity, String brand) super();this.goodsid = goodsid;this.typeid = typeid;this.goodsname = g
26、oodsname;roduce = introduce;this.price = price;this.nowprice = nowprice;this.picture = picture;ime = intime;this.newgoods = newgoods;this.sale = sale;this.hit = hit;this.quantity = quantity;this.brand = brand;public Goods(Long goodsid)this.goodsid = goodsid;public Long getGoodsid()/获
27、取商品IDreturn this.goodsid;public void setGoodsid(Long goodsid) /设置商品IDthis.goodsid = goodsid; /此处省略了控件商品信息的其它属性接口代码订单实体类avabean; import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;private String orderid; /订单编号private Short bnumber; /供货数量private String username; /用户名privat
28、e String truename; /真实姓名private String address; / private String postcode; /邮政编码private String tel; /联系 private String pay; /付款方式private String carry; /运送方式private String rebate; /打折折扣private String orderdate; /订货日期private Integer enforce; /是否执行private String bz; /备注public Order()/生成订单号,订单号格式:年月日时分秒
29、public String getOrderid() return orderid;public void setOrderid(String orderid) this.orderid=orderid;public Order(String orderid, Short bnumber, String username,String truename, String address, String postcode, String tel,String pay, String carry, String rebate, String orderdate,Integer enforce, St
30、ring bz) super();this.orderid = orderid;this.bnumber = bnumber;this.username = username;this.truename = truename;this.address = address;this.postcode = postcode;this.tel = tel;this.pay = pay;this.carry = carry;this.rebate = rebate;this.orderdate = orderdate;this.enforce = enforce;this.bz = bz;public
31、 Short getBnumber()/获得供货数量return this.bnumber;public void setBnumber(Short bnumber)/设置供货数量this.bnumber = bnumber; /此处省略了订单信息的其它属性接口代码会员实体类bean;private Integer id;/用户IDprivate String username; /用户名private String truename;/真实姓名private String password; /密码private String address; / private String postco
32、de;/邮政编码private String cardno;/证件号码private String cardtype; /证件类别private Integer grade;/用户等级private String amount; /数量private String tel;/联系 private String email; /邮件private Integer freeze;/是否冻结public Member()public Member(Integer id)this.id = id;public Member(Integer id, String username, String tru
33、ename,String password, String address, String postcode, String cardno,String cardtype, Integer grade, String amount, String tel,String email, Integer freeze)this.id = id;this.username = username;this.truename = truename;this.password = password;this.address = address;this.postcode = postcode;this.ca
34、rdno = cardno;this.cardtype = cardtype;this.grade = grade;this.amount = amount;this.tel = tel;this.email = email;this.freeze = freeze;public Integer getId()/获取会员IDreturn this.id;public void setId(Integer id) /设置会员IDthis.id = id; /此处省略了会员信息的其它属性接口代码商品实体对应的DAO实现类 在本系统中主要用Vector类作为容器存储相关信息。Vector是java.
35、util包中的一个类,是一个可变长度的对象数组,其大小可以动态增加或减少。以下介绍Vector类中几个常用的函数及其用法。addElment(Object object):添加指定的对象到Vector适量的末尾,Vector矢量的长度增加1。调用的方法为: Vector(Object object), VectorObjectName是Vector类对象的名称。clear():删除Vector矢量中的所有元素,调用方法为:Vector()。elementAt(int index):返回Vector矢量中指定索引index处的对象。此方法返回Object类型的对象,因此在使用时要进行类型转换,调
36、用方法为:VectorObjectName. elementAt(int index)。isEmpty():判断Vector类中是否含有对象,如果有那么返回true,否那么返回false。调用方法为Vector()。removeAllElements ():删除Vector中所有元素,并将其大小设置为0.调用方法为:Vector()。removeElementAt(int index):删除Vector中指定元素,此矢量的大小减1。调用方法为: VectorObjectName. removeElementAt(int index)。size():返回Vector矢量的长度,调用方法为Vect
37、orObjectName. size()。package com.honesty.dao;import java.sql.Date;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import com.honesty.javabean.Goods;import com.honesty.javabean.Pageable;import com.honesty.page.Page;import com.honesty.util.DBConn;import java.text.SimpleD
38、ateFormat;public class DAO_Goods static DBConn dbconn = new DBConn();public ResultSet rs = null;private Page page = null;/ 插入商品信息public int goods_insert(Goods goods) throws SQLException try String sql = insert into goods (typeid,goodsname,price,nowprice,picture,intime,newgoods,sale)+ values(+ goods.
39、getTypeid()+ ,+ goods.getGoodsname()Price()+ ,+goods.getNowprice()+ ,+ goods.getPicture()+ ,+ (new impleDateFormat(yyyy-MM-dd hh:mm:ss).format(new java.util.Date()+ ,+ goods.getNewgoods()+ ,+ goods.getSale() + );System.out.println(插入sql语句为 + sql);int i = dbconn.executeUpdate(sql);return i; catch (Ex
40、ception E) E.printStackTrace();return 0; finally / 关闭连接,释放数据库资源dbconn.close();/ * 查询商品信息 */ 分页列出网上商城中所有的商品public static Vector search(int page) throws Exception try String sql = select * from goods;sql = new String(sql.getBytes(ISO8859-1), utf8);ResultSet rs = null;rs = dbconn.executeQuery(sql);/ 得到
41、一个分页功能类Pageable pageable = new Pageable(rs);/ 设置分页大小pageable.setPageSize(10);/ 设置要转向的页pageable.gotoPage(page);/ 在结果集中定位到某行,在这里,这一行是要转向页的第一行rs.absolute(pageable.getRowsCount();int i = 0;System.out.println(page= + page);Vector vector = new Vector();do vector.add(new Goods(rs.getLong(goodsid),rs.getInt
42、(typeid), rs.getString(goodsname), rs.getString(introduce), rs.getString(price),rs.getString(nowprice), rs.getString(picture), rs.getDate(intime), rs.getInt(newgoods), rs.getInt(sale), rs.getInt(hit), rs.getInt(quantity), rs.getString(brand);i+; while (rs.next() & i pageable.getCurrentPageRowsCount(
43、);return vector; finally try dbconn.close(); catch (Exception e) e();/ 列出所有的商品public Vector list_goods()String sql = select * from goods order by intime desc;Vector vector = new Vector();rs = dbconn.executeQuery(sql);try while(rs.next()Goods goods = new Goods();goods.setGoodsid(rs.getLong(goodsid);g
44、oods.setTypeid(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.setIntroduce(rs.getString(introduce);goods.setPrice(rs.getString(price);goods.setNowprice(rs.getString(nowprice);goods.setPicture(rs.getString(picture);goods.setIntime(rs.getDate(intime);goods.setNewgoods(rs.getInt(new
45、goods);goods.setSale(rs.getInt(sale);goods.setHit(rs.getInt(hit);uantity(rs.getInt(quantity);goods.setBrand(rs.getString(brand);/ 向Vector矢量中添加对象goodsvector.addElement(goods); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return vector;public Vector list_goods(Goods good
46、s) try String sql = select * from goods order by intime desc;rs = dbconn.executeQuery(sql);Vector vector = new Vector();/ ResultSet指针最初位于第一行之 前,调用next方法使下一行成为当前行while (rs.next() goods.setGoodsid(rs.getLong(goodsid);goods.setTypeid(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.se
47、tIntroduce(rs.getString(introduce);goods.setPrice(rs.getString(price);goods.setNowprice(rs.getString(nowprice);goods.setPicture(rs.getString(picture);goods.setIntime(rs.getDate(intime);goods.setNewgoods(rs.getInt(newgoods);goods.setSale(rs.getInt(sale);goods.setHit(rs.getInt(hit);goods.setQuantity(r
48、s.getInt(quantity);goods.setBrand(rs.getString(brand);/ 向Vector矢量中添加对象goodsvector.addElement(goods);return vector; catch (SQLException SqlE) SqlE.printStackTrace();return null; catch (Exception E) E.printStackTrace();return null; finally / 关闭连接,释放数据库资源dbconn.close();/ 通过商品id获取商品的信息public Goods list_
49、goods(String id) try String sql = select * from goods where goodsid= + id+ order by intime desc;rs = dbconn.executeQuery(sql);Goods goods = new Goods();while (rs.next() goods.setGoodsid(rs.getLong(goodsid);goods.setTypeid(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.setIntroduc
50、e(rs.getString(introduce);goods.setPrice(rs.getString(price);goods.setNowprice(rs.getString(nowprice);goods.setPicture(rs.getString(picture);goods.setIntime(rs.getDate(intime);goods.setNewgoods(rs.getInt(newgoods);goods.setSale(rs.getInt(sale);goods.setHit(rs.getInt(hit);goods.setQuantity(rs.getInt(
51、quantity);goods.setBrand(rs.getString(brand);return goods; catch (SQLException SqlE) SqlE.printStackTrace();return null; catch (Exception E) E.printStackTrace();return null; finally / 关闭连接,释放数据库资源dbconn.close();/新品上架/ 对上述函数进行重载,通过是否为新上架获取商品的信息public Vector list_goods(int newgoods, String goto_page)V
52、ector vector = null;String sql = , sql2 = ;trypage = new Page();/设置分页大小page.setPageSize(10);/记录总数sql = select count(*) from goods where newgoods= + newgoods+ order by intime desc ;System.out.println(记录总数sql= + sql);rs = dbconn.executeQuery(sql);page.setTotalPage(rs);on(goto_page);/查询结果sql2 = select
53、* from goods where newgoods= + newgoods+ order by intime desc limit + page.getStartposition() + , + page.getPageSize();System.out.println(查询结果sql= + sql2);rs = dbconn.executeQuery(sql2);vector = new Vector();while (rs.next()Goods goods = new Goods();goods.setGoodsid(rs.getLong(goodsid);goods.setType
54、id(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.setIntroduce(rs.getString(introduce);goods.setPrice(rs.getString(price);goods.setNowprice(rs.getString(nowprice);goods.setPicture(rs.getString(picture);goods.setIntime(rs.getDate(intime);goods.setNewgoods(rs.getInt(newgoods);goods
55、.setSale(rs.getInt(sale);goods.setHit(rs.getInt(hit);goods.setQuantity(rs.getInt(quantity);goods.setBrand(rs.getString(brand);/ 向Vector矢量中添加对象goodsvector.addElement(goods);catch (Exception e) intStackTrace();finally/ 关闭连接,释放数据库资源dbconn.close();return vector;/ 根据typeid查询所有商品public Vector type_goods(S
56、tring typeid,String goto_page) Vector vector = null;String sql = , sql2 = ;try this.page = new Page();/设置分页大小page.setPageSize(10);/记录总数sql = select * from goods where typeid= + typeid + ;ResultSet rs = dbconn.executeQuery(sql);page.setTotalPage(rs);page.setStartposition(goto_page);/查询结果sql2 = select
57、 * from goods where typeid= + typeid+ order by intime desc limit + page.getStartposition() + , + page.getPageSize();System.out.println(查询结果sql= + sql2);rs = dbconn.executeQuery(sql2);vector = new Vector();while (rs.next() Goods goods = new Goods();goods.setGoodsid(rs.getLong(goodsid);goods.setTypeid
58、(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.setBrand(rs.getString(brand);goods.setIntroduce(rs.getString(introduce);goods.setHit(rs.getInt(hit);goods.setIntime(rs.getDate(intime);goods.setNowprice(rs.getString(nowprice);goods.setPrice(rs.getString(price);goods.setPicture(rs.g
59、etString(picture);lement(goods);return vector; catch (Exception e) e.printStackTrace();return null; finally dbconn.close();/ 对上述函数进行重载,通过上架时间查询商品public Vector list_goods(Date intime, Goods goods) try String sql = select * from goods where intime= + intime+ order by intime desc;rs = dbconn.executeQue
60、ry(sql);Vector vector = new Vector();while (rs.next() goods.setGoodsid(rs.getLong(goodsid);goods.setTypeid(rs.getInt(typeid);goods.setGoodsname(rs.getString(goodsname);goods.setIntroduce(rs.getString(introduce);goods.setPrice(rs.getString(price);goods.setNowprice(rs.getString(nowprice);goods.setPict
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论