基于MVC模式的网上超市系统_java课程设计(27页).docx
-
资源ID:37054941
资源大小:169.85KB
全文页数:26页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于MVC模式的网上超市系统_java课程设计(27页).docx
-基于MVC模式的网上超市系统_java课程设计-第 22 页软件综合课程设计报告题目名称: 基于MVC模式的网上超市系统 班 级: 组长学号: 组长姓名: 成 绩: 指导老师: 2013 年 11月 02日目录1.开发背景11.1 开发的必要性11.2 市场现状分析11.3 设计思想11.4 开发工具选择12.系统分析22.1 需求分析22.2 可行性分析32.2.1对项目技术支持的分析32.2.2对项目经济可行性的分析32.2.3 社会因素的分析32.2.4 结论33.系统概要设计33.1系统功能设计33.2系统目标43.3系统的功能结构54.系统详细设计54.1构建开发环境54.2项目实体E-R图54.3数据库分析与设计74.4客户端模块设计94.4.1顾客购买商品的时序图94.4.2顾客购买商品的活动图94.4.3客户端的完整设计104.5服务器端模块设计114.5.1管理员管理商品的时序图:114.5.2管理员管理商品的活动图114.5.3管理员管理订单的时序图124.5.4管理员管理订单的活动图134.5.5服务器端的完整设计135.系统实现145.1系统目录结构145.2数据源的配置156代码编写及部分代码分析166.1客户主页开发166.2客户登录功能开发166.2.1开发Servlet166.2.2配置web.xml196.2.3数据库方法196.3“我的订单”功能开发206.4客户注销功能开发216.5 注册事件响应的开发216.6密码重置功能开发226.7 客户端信息显示功能开发236.7.1 分页显示页面开发236.7.2 分页功能开发236.8 商品查询功能开发246.9 商品分类显示开发256.10 商品详细信息显示开发256.11 购买商品功能开发266.12 关于系统其他功能的说明287.系统测试及部分页面截图287.1 前台功能测试287.2 后台管理功能测试308.结束语349.致谢3410.参考文献351.开发背景1.1 开发的必要性“需求决定市场”,这是一个亘古未变的法则。当下网络发展迅猛,人们对网络的信任度和依赖度均有很大的提高,这一现象被有商业头脑的人发现,从而开发出网上购物这种新型购物方式,极大改变了传统的消费方式。同传统的购物方式相比,网上购物有很多优点。1. 方便性:顾客足不出户就能购买到自己心仪的商品。2. 节约时间:这一点尤其为上班一族提供了方便,因为这些人整天待在办公室,无暇购物。3. 随意性:只要有网络的地方就可以购物,而且可以在本地,浏览千里之外的商店的商品,从而扩大了购物空间和随意性。上述优点足以使网络购物系统大红大紫,因此商家开发一个网上购物超市系统是很有必要的。本次课程设计旨在设计并实现一个基于实体超市的网上超市系统,使实体超市的业务范围可以得到极大扩展,从而提高商家的经营效益。1.2 市场现状分析在电子商务已经如火如荼的大背景下,市场上已经有相当多的电子商务平台为广大实体店铺提供后台管理等服务,但是考虑到很多中型或大型超市本身业务规模较大,如果与电子商务平台进行合作则可能会有比较大的支出。而且由于这些已存在的电子商务平台已经形成了比较固定的经营模式,很有可能无法完全适应很多超市本身业务扩展的需要,所以,为有志于扩展经营范围的中型或大型超市量身定做一套网上超市系统就显得尤为重要。1.3 设计思想考虑到系统应能适应不同商家的需求,故需要保证系统模块之间的低耦合性;同时为了开发的便利与日后维护的方便,考虑使用MVC模式设计,使业务处理逻辑与页面分离,加快开发进度。综上所述,本系统应实现以下优势:(1)项目不同模块之间具有低偶合性。(2)业务功能扩展方便且便于维护。1.4 开发工具选择本项目开发工具选用MyEclipse,采用JSP技术、MVC框架和MySQL数据库。MVC框架介绍:MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型视图控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型视图控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点.MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + Servlet +JavaBean的模式。2.系统分析2.1 需求分析本系统主要是供网上购物的用户使用,同时后台也必须有管理人员对其进行管理,以保证系统正常运行。客户端应能够对顾客购买商品的需求做出友好的相应,据此分析客户端应具有如下功能:·购物车功能,对顾客要购买的商品进行管理。·我的订单功能,包括对用户的订单进行管理。·用户注册功能,主要让初次登陆的用户进行注册。·密码重置功能,已注册的用户对自己的密码进行修改。·注销功能,已登录的用户在离开本购物超市时进行注销。理端应能够对系统中的商品信息及订单信息进行监督及操作,即管理端应具有如下所示功能:·管理员管理功能,操作者包括超级管理员和普通管理员,超级管理员可对任意管理员的信息进行管理,而普通管理员只有部分权限。(注:考虑到日后系统扩展的需要及系统本身的安全性,必须做到账号的专人专用,以明晰权责分配,防止不必要的意外事故及纠纷的发生。原则上超级管理员在添加管理员时只添加普通管理员,以防止管理员之间的恶意或无意增删,威胁系统安全)。·商品管理,对商品进行增、删、改、查。·订单管理,对客户的订单进行管理。·注销,让离开后台管理系统的管理员进行注销。2.2 可行性分析2.2.1对项目技术支持的分析该系统采用JSP+Servlet+JavaBean+Tomcat+MySQL完成,鉴于作者此前已有这些方面的项目经验,所以有信心及时保质保量的完成此项目的开发。2.2.2对项目经济可行性的分析本项目旨在提供一个完整网上超市的简单框架,预计一到二周完成。本项目能够使学到的知识得到检验,对于知识的汇总总结有一定益处,值得开发。同时本系统虽是一个网上超市的简单框架,有诸多尚待完善的功能,但仍具有一定的商业价值,日后可在稍加改进后应用于真正的商业项目中。2.2.3 社会因素的分析该系统完全由本人独立开发,其开发模式是本人的自主知识财产,在法律方面没有任何侵权行为,完全符合合同法的规定。2.2.4 结论根据具体及详细的分析,本人认为该系统的经济可行性、技术可行性及营运可行性都比较高,故决定开发此系统。3.系统概要设计3.1系统功能设计若要实现一个完整的网上超市系统,则必须具备完善的前台交易平台和功能强大的后台管理系统,现在对两项功能分别进行分析。游客登入网上超市后可以浏览商品,若要购买商品则必须先注册成为会员并以会员身份登录系统,购买商品后到购物车中查看并核对商品信息,若确认无误就可以进行支付。在支付前会员需要填写收货地址,联系方式等信息以确保运送过程万无一失。顾客支付完成后生成订单信息,此信息传回到后台Servlet,由后台Servlet进行处理,在处理过程中涉及数据库连接的操作则交由JavaBean处理。Servlet将处理后的信息通过JavaBean写入数据库,并将处理结果传回前台界面,向会员显示交易信息。至此,一次交易过程即已完成。基于上述分析,顾客购买商品的用例图应如下图所示:图3-1 顾客购买商品的用例图前面已经提到,考虑到以后系统扩展的需要及出于对系统本身安全性的考虑,本系统需严格按照账号密码专人专用的原则,以避免出现系统在遭到无意或恶意破坏时无法追究责任人的现象。同时,为防止以上误操作的发生,特别设立超级管理员,只有超级管理员才有权限对普通管理员进行增删等操作。这样就实现了在日后业务扩展时既能及时方便的增加管理员又能防止同级管理员之间可能存在的恶意增删现象,以维护系统稳定。基于上述考虑,原则上超级管理员只增加普通管理员即可,尽量保证超级管理员的唯一性。同时管理员都具有商品管理及订单管理功能。在商品管理中,管理员可以将新上架的商品及时更新到系统中,也可以将已经下架或库存不足的商品从系统中删除,为方便以后业务扩展需要,需实现商品搜索功能以加快商品查询速度。在订单管理中,管理员可查看订单详细信息,同时可发送未发送的订单,查看已经发送,交易完成的订单。基于上述分析,管理员后台管理的用例图如下所示:图3-2 管理员后台管理的用例图3.2系统目标根据对项目的分析最终确定系统要实现的要求如下:·实现系统分析阶段所设计的功能。·实现系统界面的友好性,让用户有种宾至如归的感觉,从而提高浏览量及交易量,提高网络运营商的效益。3.3系统的功能结构根据上述所描述的系统分析及设计,最终确定该系统的功能结构如图所示。图3-3 系统功能结构图4.系统详细设计4.1构建开发环境开发此系统所需要用到的软件环境如下。·JDK1.6及其以上版本:相比1.6之前的JDK版本而言,JDK1.6有相对完善的功能,能够加快开发进度。·Web应用服务器:Tomcat 6.0及其以上版本。虽然是一款绿色软件,但其功能比较强大,方便易用,极适合中小型系统应用。可从网上免费下载,从而可以降低开发成本。·数据库:MySQL5.5及其以上版本。MySQL已经被sun公司收购,会有比较好的发展。虽然其本身存在诸多不足,但作为一个简易项目的数据库完全可以胜任。·开发环境:MyEclipse。本系统使用了目前较新的MyEclipse 10版本进行开发,由于MyEclipse提供了比较强大的插件工具包,所以极大的缩短了开发进程。4.2项目实体E-R图·商品的E-R图,:图4-1 商品的E-R图·管理员E-R图:图4-2 管理员的E-R图·订单明细的E-R图:图4-3 订单明细的E-R图·顾客的E-R图:图4-4 顾客的E-R图·订单的E-R图:图4-5 订单的E-R图4.3数据库分析与设计 此系统由Jsp+Servlet+JavaBean+Tomcat+MySQL组成,因为对数据库的性能要求不是太高,故采用适用于中小型企业的MySQL数据库较为合适。而且该数据库免费,操作简单,可以节约开发成本和开发时间。本系统中的信息表主要有5张表:商品资料表、顾客资料表、管理员资料表、订单表、订单明细表,下面分别对各表进行介绍。(1) 商品资料表:用于记录库存商品的基本信息,其主要字段有:商品ID、商品名称、商品类别、商品价格、商品简介、上架日期、商品数量、图片URL等,具体设计如表4-1所示。表4-1 商品资料表字段名称数据类型字段大小是否主键是否为空说明goodsidIntN/A是否商品IDgoodsnamevarchar50否否商品名称gtypevarchar50否否商品类别gpricedoubleN/A否否商品价格gdatedateN/A否否上架日期gamountintN/A否否商品数量gimgurlVarchar100否否图片URLgintroductiontextN/A否否商品简介(2) 顾客资料表:用于记录顾客的信息,主要由顾客名称、顾客密码、顾客E-mail组成,如表4-2所示。表4-2 顾客资料表字段名称数据类型字段大小是否主键是否为空说明cnamevarchar50是否顾客名称cpwvarchar50否否顾客密码cemailvarchar50否是顾客E-mail(3) 管理员资料表:用于记录管理员的信息,主要由管理员名称、管理员密码、管理员权限组成,如表所示。表4-3 管理员资料表字段名称数据类型字段大小是否主键是否为空说明mnamevarchar50是否管理员名称mpwvarchar50否否管理员密码mpermittedvarchar50否否管理员权限(4) 订单资料表:用于记录顾客订单的一些基本信息,包括订单ID、顾客名称、收货人名称、收货人地址、收货人电话、订单状态、订货时间等,如表所示。表4-4 订单资料表字段名称数据类型字段大小是否主键是否为空说明oidintN/A是否订单IDcnamevarchar50否否顾客名称receivenamevarchar50否否收货人receiveaddsvarchar50否否收货人地址receivetelvarchar50否否收货人电话allmoneydoubleN/A否否总价zhuangtaivarchar100否否状态buytimedatetimeN/A否否购买时间(5) 订单明细表:该表用于记录订单的详细信息,主要包括订单ID、商品名、商品ID、商品价格、订货数量、订货时间等,具体设计如表所示。表4-5 订单明细表字段名称数据类型字段大小是否主键是否为空说明oidintN/A否否订单IDgoodsidintN/A否否商品IDgoodsnamevarchar50否否商品名称gpricedoubleN/A否否级别orderamountintN/A否否订货数量buytimedatetimeN/A否否订货时间4.4客户端模块设计4.4.1顾客购买商品的时序图客户端模块应主要分析客户购买商品的过程,包括客户端用户购买商品,生成订单,以及订单的处理过程,其时序图如下所示。图4-6 顾客购买商品的时序图4.4.2顾客购买商品的活动图登录到系统前台界面的游客可以浏览商品信息,如果有想要购买的商品则要进行注册,并向系统提交账号,密码和邮箱等信息以在日后顾客再次购买时唯一地标识不同客户。此时已经注册成功的顾客必须以所注册的用户名登录系统,点击想要购买的货物,然后跳转到购物车中进行付款,在购物车中顾客可以对所购买的商品数量进行修改。在确认订单信息无误后就可以进行付款等操作,此时系统会提示用户填写收货人姓名,收货地址以及联系方式等信息以确保发货过程中出现差错。顾客订单填写成功后订单表单传送到后台服务器,交由Servlet处理,Servlet解析表单上传送过来的信息并进行数据库的操作,将生成的订单信息更新到数据库中。服务器端通过Servlet取出存在于数据库中的表单信息,进行显示。这时有后台管理员对顾客提交的表单审核,发货等进行处理,发货成功后,顾客收到货物,至此一次购物活动即告完成。系统自动将发送成功的表单存于数据库中,并通过Servlet传值的方式显示到服务器管理页面上,供管理员查看。图4-7 顾客购买商品的活动图4.4.3客户端的完整设计基于上述对客户端功能的分析,确定出顾客所需进行的操作如下所示。为了便于实现业务逻辑的清晰化构思,将顾客可能进行的动作进行编号,编写相应的前台界面,使用相同的Servlet统一处理,需要调用数据库的操作统一提交到JavaBean类中,通过JavaBean连接操作数据库的类的方式进行处理。为便于说明,采用系统框架图的方式加以呈现如下:表4-6 客户动作标号表动作编号动作内容动作编号动作内容动作编号动作内容A登陆动作G注销动作M购买动作B顾客注册H购物车商品显示N查询商品C顾客修改信息I购物车商品修改O商品分类D顾客查看订单J购物车商品删除P继续购买E商品显示K顾客登陆Q显示订单F换页显示L查看商品明细R首页初始化图4-8 客户端页面关系图4.5服务器端模块设计4.5.1管理员管理商品的时序图:图4-9 商品添加时序图4.5.2管理员管理商品的活动图管理员登录系统后可以对商品信息进行管理,具体可进行对包括对系统中商品的查询,添加,删除等操作。为方便以后业务扩展的需要,特别开发了商品查询功能,从而可以根据管理员的筛选信息快速查询到数据库中的商品信息,从而提高管理员的工作效率。在商品管理的过程中,如果仓库中新进了一批货物,管理员可及时将这些商品的信息添加到网上超市系统中供顾客浏览和购买。商品信息具体包括商品名称,商品类型,商品价格,上架日期(系统自动生成),商品数量,商品的图片信息和商品简介等。这些表单信息会传送到后台的Servlet,由后台的Servlet通过调用JavaBean写入到数据库中,如果添加成功则向管理员返回添加成功信息。至此商品添加过程即告结束。商品删除过程与添加过程类似,在此不再赘述。图4-10 管理员管理商品的活动图4.5.3管理员管理订单的时序图管理员登录系统后可以对订单进行管理,具体包括订单信息查看,发送未发送订单,查看已发送订单的详细信息等操作。图4-11 管理员管理订单的时序图4.5.4管理员管理订单的活动图图4-12 管理员管理订单的活动图4.5.5服务器端的完整设计为了便于实现业务逻辑的清晰化构思,将管理员可能进行的动作进行编号,编写相应的前台界面,使用相同的Servlet统一处理,需要调用数据库的操作统一提交到JavaBean类中,通过JavaBean连接操作数据库的类的方式进行处理。为便于说明,采用系统框架图的方式加以呈现如下:表4-7 管理员操作标号表动作编号动作内容动作编号动作内容动作编号动作内容A登陆动作E个人信息修改I查看商品信息B管理员添加F商品添加J查看订单信息C管理员查看G商品信息修改及删除K发送未发送订单D管理员删除H商品查询L查看已发送订单图4-13 服务器端页面关系图5.系统实现5.1系统目录结构在系统开发前,先来明确系统的目录组织结构,这样就可以更好地理解其开发原理,本系统的目录组织结构如图所示。图5-1 系统目录结构图5.2数据源的配置本系统连接数据库采用的是数据源连接池,在使用之前需先进行简单的配置具体步骤如下:(1) 在Tomcat安装目录下的lib目录下添加MySQL数据库驱动jar包“mysql-connector-java-5.1.6-bin.jar”。(2) 在Tomcat安装目录下的conf目录下server.xml中最后的”</Host>”标记之前添加配置信息:<Context path=”/chaoshi” docBase=”chaoshi” debug=”5” reloadable=”true” crossContext=”true” workDir=”><Resource name=”jdbc/marketds” auth=”Container” type=”javax.sql.DataSource” maxActive=”100” maxIdle=”30” maxWait=”10000” username=”root” password=” driverClassName=”org.gjt.mm.mysql.Driver” url=”jdbc:mysql:/localhost/test”/></Context>(3) 在项目工程的WEB-INF文件夹下的web.xml中添加如下配置信息:<resource-ref><description> DB Connection</description><res-ref-name>jdbc/marketds</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>6代码编写及部分代码分析6.1客户主页开发为了界面统一及开发的便利,考虑使用frameset标记,将主页面分成三部分。分别为“topFrame”,“leftFrame”和“mainFrame”。名称为“leftFrame”的部分,用来显示左部的搜索框和商品分类列表,即显示“leftFrame.jsp”的内容;名称为“mainFrame”的部分,用来显示商品信息及顾客购买信息,即显示“pagination.jsp”的内容;名称为“topFrame”的部分用来显示页面跳转的导航按钮,实现页面之间的跳转,即“topFrame.jsp”的内容。主页(index.jsp)部分代码如下:<frameset rows="20%,*"> <frame name="topFrame" scrolling="no" noresize width="20%" src="top.jsp" ><frameset cols="18%,*"> <frame name="leftFrame" scrolling="no" noresize src="leftFrame.jsp"><frame name="mainFrame" scrolling="YES" src="pagination.jsp"></frameset></frameset>6.2客户登录功能开发用户进入本网上超市,如果想购买商品并提交订单,必须要登录才能进行,如果用户离开本网上超市,为了保证自己的私人信息得到保护,需要注销。主页页面中有一个“用户登录”超链接,主要实现单击这个超链接进入“用户登录”页面的功能。在本节中将对该链接的功能进行详细开发。其开发需要进行多项工作,下面分几个步骤进行,具体如下。6.2.1开发Servlet客户登录需要使用Servlet进行处理,其具体开发代码(部分)如下所示:package wyf.hxl;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class CustomerServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("gb2312");response.setCharacterEncoding("gb2312");response.setContentType("text/html;charset=gb2312");HttpSession session = request.getSession(true);PrintWriter out = response.getWriter();PaginationBean handlePage = (PaginationBean) session.getAttribute("handlePage");if (handlePage = null) handlePage = new PaginationBean();session.setAttribute("handlePage", handlePage);String action = request.getParameter("action");if (action = null) return;if (action.equals("denglu") String zname = request.getParameter("zname");String zpassword = request.getParameter("zpassword");String cname = new String(zname.getBytes(), "gb2312");String sql = "select cname from gcustomer where cname='" + cname+ "' and cpw='" + zpassword + "'"boolean s = DB.selectMsg(sql);String code=request.getParameter("code");HttpSession sessiontemp = request.getSession();String randStr=(String)sessiontemp.getAttribute("randStr");if(!code.equals(randStr)String msg = "验证码输入错误,请重新输入!"request.setAttribute("msg",msg);ServletContext sc = getServletContext();/得到上下文 RequestDispatcher rd = sc.getRequestDispatcher("/customermanage.jsp");rd.forward(request,response);return;if (s) session.setAttribute("user", zname);String fromWhere = (String) session.getAttribute("fromWhere");if (fromWhere != null) if (fromWhere.equals("jz") / 回结账this.getServletContext().getRequestDispatcher("/CustomerServlet?action=jiezhang").forward(request, response);return; else if (fromWhere.equals("wddd") / 回我的订单this.getServletContext().getRequestDispatcher("/CustomerServlet?action=modify2").forward(request, response);return; else if (fromWhere.equals("mmcz") / 回密码重置this.getServletContext().getRequestDispatcher("/customerpwchange.jsp").forward(request, response);return;this.getServletContext().getRequestDispatcher("/pagination.jsp").forward(request, response); else String msg = "对不起,登录失败,请重新登录!"request.setAttribute("msg", msg);this.getServletContext().getRequestDispatcher("/customermanage.jsp").forward(request, response);·“request.setCharacterEncoding("gb2312");”的作用是设置对请求中的中文进行处理。之后的两段代码对传到响应页面的中文进行处理。·“HttpSession session = request.getSession(true);”行的作用是得到JSP端的Session对象,得到该对象后,就可以对其中存放的对象进行操作,也可以将某个对象放入里面。·” String action = request.getParameter("action");”的作用是获得请求动作,当得到动作后就可以根据动作的不同来实现不同的功能。·“String sql = "select cname from gcustomer where cname='" + cname+ "' and cpw='" + zpassword + "'"”的作用是给出了从表中查询相关用户信息的SQL语句,根据这句SQL就可以调用selectMsg()方法进行查询。·如果验证结果为true,将进行页面跳转。6.2.2配置web.xml当开发完Servlet后,需要对其进行配置才能使用,故需检查系统自动生成的在WEB-INF目录下的web.xml文件。是否有如下语句,如没有则需手动添加。 <servlet> <servlet-name>CustomerServlet</servlet-name> <servlet-class>wyf.hxl.CustomerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CustomerServlet</servlet-name> <url-pattern>/CustomerServlet</url-pattern> </servlet-mapping>6.2.3数据库方法开发完Servlet,将开发getMessage()方法,这里将进行DB.java的开发并对部分代码进行分析,其具体开发代码如下所示。public static Vector<String> getMessage(String sql) Vector<String> vtemp = new Vector<String>();try / 初始化上下文Context initial = new InitialContext();/ 其中mysql为数据源jndi名称DataSource ds = (DataSource) initial.lookup("java:comp/env/jdbc/marketds");/ 得到连接Connection con = ds.getConnection();/ 声明语句Statement st = con.createStatement();/ 执行语句得到结果集ResultSet rs = st.executeQuery(sql);/ 获取结果集的元数据ResultSetMetaData rsmd = rs.getMetaData();/ 得到结果集中的总列数int count = rsmd.getColumnCount();while (rs.next() String str = new Stringcount;for (int i = 0; i < count; i+) stri = rs.getString(i + 1);stri = new String(stri.getBytes("GB2312");vtemp.add(str);