网上书店完整代码解析
- 格式:doc
- 大小:230.00 KB
- 文档页数:69
目录1 选题背景 (1)1.1 设计内容 (1)1.2 目的和意义 (1)2 方案论证 (1)2.1 B/S结构介绍 (1)2.2 基于B/S模式系统的实现技术 (2)2.3 运行环境和开发工具的选择 (3)2.4数据库SQL Server的选择 (4)3. 过程论述 (4)3.1 需求分析 (4)3.2 网上书店的总体设计 (4)4 设计结果 (8)4.1 运行主界面 (8)4.2 用户注册页面 (9)4.3 用户登陆页面 (9)4.4 修改密码页面 (10)4.5 图书搜索界面 (10)4.6 购买页面 (11)4.7 图书评价界面 (11)5 设计体验及今后改进意见 (12)5.1 设计体会 (12)5.2 改进意见 (12)参考文献 (13)Web数据库程序设计语言课程设计1 选题背景1.1 设计内容20世纪末,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。
个性化已逐渐成为当今Web应用的潮流。
本文研究了一种基于数据关联规则网上书店系统,此方案与现今网上已采用的一些方案相比,具有用户使用更简单、界面更直观等优点。
网上书店在我国刚起步,但发展很快。
随着我国互联网的更加普及和网上书店的更趋成熟,会有越来越大的消费群体,市场潜力会得到充分发挥。
网上书店正是依靠Internet这个载体才得以发展和不断的成熟起来,并对产品的销售和物品的购买展示出了一种崭新的理念。
1.2 目的和意义网上书店管理系统主要是处理网上购书和库存的系统,提供具有图书分类检索和搜索,购物车管理,在线订单,书籍推荐,热卖排行,顾客评论等功能和强大的后台管理功能,提供高效、安全、智能化的数据管理,从而提高整个网上书店各项功能管理水平。
通过网上书店管理系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高网上购书的效率。
2 方案论证2.1 B/S结构介绍B/S结构(Browser/Server结构)结构,即浏览器和服务器结构。
完整的简单jsp网上书店详细实例计算机web编程jsp毕业论文、考试复习资料必备其中包括的详细需求、业务分析、数据库、源代码我们使用JSP和Java Bean来构建一个网上书店。
介绍的例子可以分成两大部分,第一部分是普通程序,用于客户在网上选购图书,第二部分是管理程序,用于在服务器端处理客户的定单。
客户端程序由以下几个部分构成:default.jsp:会员登录界面(首页);checklogon.jsp:检测登录代码和密码是否一致,根据由JavaBean返回的结果显示不同的信息。
BuyerBean:会员的合法性检验所用的Bean;booklist.jsp:给登录会员显示当前书店中可供选择的图书;addcart.jsp:将所选的图书加入购物车;shoppingcart.jsp:查看购物车的内容;本例的数据库采用Access(.MDB数据库),对数据库的访问采用便于理解的JDBC-ODBC方式,在使用本例前先在本地数据库建立一个ODBC数据源:bookstore。
设置步骤如下:(1)在开始->设置->控制面版(Win98、NT4.0)中选取“数据源(ODBC)”;在Win 2000 Professional和Server中分别位于“开始->设置->控制面版->管理工具”和“开始->程序->管理工具”下。
(2)启动“数据源(ODBC)”配置程序,界面如图15-1所示。
图15-1 ODBC数据源管理界面(3)在图15-1中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),则出现如图15-2所示数据源驱动程序选择界面:图15-2 数据源驱动程序选择界面(4)在图15-2中选择“Microsoft Access Driver (*.mdb)”单击“完成”加载Access数据库的驱动,则出现如图15-3所示数据库ODBC安装界面:图15-3 数据库ODBC安装界面(5)在图15-3中单击“选择(S)…”按钮,启动一个类似资源管理器的界面来选择数据库,如图15-4所示,在图15-4所示的界面中选择bookstore.mdb。
叮当书城系统详细设计说明及关键代码展示叮当书城系统详细设计说明及关键代码展示1. 系统概述:叮当书城是一个电子商务平台,用于在线购买图书和相关商品。
该系统具有用户注册登录、商品浏览、购物车管理、订单管理等功能。
2. 系统架构:叮当书城系统采用三层架构,即表示层、业务逻辑层、数据访问层。
- 表示层:使用HTML、CSS、JavaScript等技术实现网页前端的展示和交互功能。
- 业务逻辑层:使用Java语言编写,包括控制器和服务层。
控制器负责接收请求和响应,服务层负责处理业务逻辑。
- 数据访问层:使用数据库(如MySQL)存储和管理数据。
通过JDBC或ORM框架进行与数据库的交互。
3. 用户注册登录:- 注册功能:用户可以填写个人信息(如姓名、手机号、地址等),并通过校验后完成注册。
- 登录功能:用户通过输入手机号和密码进行登录,并验证信息正确性。
4. 商品浏览:- 首页展示:系统首页展示热销图书、新书上架等相关信息,用户可通过分类、搜索等方式进行图书浏览。
- 详情页展示:点击某一图书后,可以查看该图书的详细信息,如书名、作者、出版社、价格等。
5. 购物车管理:- 添加商品:用户在浏览图书时,可将图书加入购物车。
- 修改商品数量:用户可以修改购物车中商品的数量。
- 删除商品:用户可以从购物车中删除某个商品。
6. 订单管理:- 提交订单:用户在购物车中选择要购买的商品后,提交订单,并填写相关信息(如收货地址、支付方式等)。
- 查看订单:用户可以查看自己的订单信息,包括订单号、商品列表、订单金额等。
- 取消订单:用户可以取消未支付的订单。
- 订单处理:系统管理员可以对订单进行处理,如确认付款、发货等。
订单状态会相应变更。
7. 关键代码展示:(1) 用户注册:```javapublic class UserController {public void register(User user) {// 校验用户信息// ...// 保存用户信息userDao.save(user);}}public interface UserDao {void save(User user);}```(2) 商品浏览:```javapublic class BookController {public List<Book> getBooksByCategory(String category) {// 查询指定分类的图书List<Book> books =bookDao.findByCategory(category);return books;}}public interface BookDao {List<Book> findByCategory(String category);}```(3) 购物车管理:```javapublic class CartController {public void addToCart(User user, Book book) {// 获取用户的购物车信息Cart cart = cartDao.findByUser(user);// 添加商品到购物车cart.addItem(book);cartDao.update(cart);}}public interface CartDao {Cart findByUser(User user);void update(Cart cart);}```(4) 订单管理:```javapublic class OrderController {public void submitOrder(User user, Cart cart, Order order) {// 创建订单orderDao.create(order);// 关联用户、商品、订单的关系order.setUser(user);order.setItems(cart.getItems());// 更新订单状态order.setStatus(Status.SUBMITTED);orderDao.update(order);}}public interface OrderDao {void create(Order order);void update(Order order);}public enum Status {SUBMITTED,PAID,DELIVERED,CANCELLED}```以上代码展示了系统中关键功能的核心实现逻辑,其中包括用户注册、商品浏览、购物车管理和订单管理。
package user;import java.sql.*;import java.util.*;import java.util.Date;import java.sql.PreparedStatement;import com.ConnDB;import java.sql.*;import java.util.*;import com.ConnDB;public class UserDB extends ConnDB{private ArrayList user;public UserDB () throws Exception{}public boolean userExist(String username){boolean occupied=true;try{ConnDB.initialize(); // create database connection PreparedStatement preparedStatement = conn.prepareStatement ( "select userid from Buser where username=?"); preparedStatement.setString (1, username);ResultSet resultSet = preparedStatement.executeQuery ();if(!resultSet.next())occupied=false;preparedStatement.close ();ConnDB.terminate();}catch(SQLException e){e.printStackTrace();}return occupied;}public boolean isValidUser (String username, String password){boolean isValid=false;try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("SELECT username, password FROM Buser WHERE username=? and password=?"); preparedStatement.setString (1, username);preparedStatement.setString (2, password);ResultSet resultSet = preparedStatement.executeQuery ();if (resultSet.next ()){isValid=true;preparedStatement.close ();ConnDB.terminate();}else{preparedStatement.close ();ConnDB.terminate();//return isValid;}}catch (SQLException e){//return isValid;}return isValid;}public boolean find(String key){boolean gotIt=false;try{ConnDB.initialize(); // create database connection PreparedStatement preparedStatement = conn.prepareStatement ( "SELECT username, password FROM Buser WHERE username = ?"); preparedStatement.setString (1, key);ResultSet resultSet = preparedStatement.executeQuery ();if (resultSet.next ()){gotIt=true;preparedStatement.close ();ConnDB.terminate();}else{preparedStatement.close ();ConnDB.terminate();//return isValid;}}catch (SQLException e){//return gotIt;}return gotIt;}public User getUser (int id){try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("SELECT userid, username, rname, password, email, address, postdate, tel " +"FROM Buser WHERE userId = ?");preparedStatement.setInt (1, id);ResultSet resultSet = preparedStatement.executeQuery ();if (resultSet.next ()){User users = new User(resultSet.getInt (1), resultSet.getString (2), resultSet.getString (3), resultSet.getString (4),resultSet.getString (5), resultSet.getString (6), resultSet.getString (7), resultSet.getString (8));preparedStatement.close ();ConnDB.terminate();return users;}else{preparedStatement.close ();return null;}}catch (SQLException e){ConnDB.terminate();return null;}}public User getUser (String username){try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("SELECT userid, username, rname, password, email, address, postdate, tel " +"FROM Buser WHERE username = ?");preparedStatement.setString (1, username);ResultSet resultSet = preparedStatement.executeQuery ();if (resultSet.next ()){User users = new User(resultSet.getInt (1), resultSet.getString (2), resultSet.getString (3), resultSet.getString (4),resultSet.getString (5), resultSet.getString (6), resultSet.getString (7), resultSet.getString (8));preparedStatement.close ();ConnDB.terminate();return users;}else{preparedStatement.close ();ConnDB.terminate();return null;}}catch (SQLException e){ConnDB.terminate();return null;}}public int addUsers (User users){System.out.println("**");int rowsAffected = 0;try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("INSERT INTO Buser (username, rname, password, email, address, postdate, tel) " + "VALUES (?, ?, ?, ?, ?, ?, ?)");preparedStatement.setString (1, users.getUsername ());preparedStatement.setString (2, users.getRname ());preparedStatement.setString (3, users.getPassword());preparedStatement.setString (4, users.getEmail());preparedStatement.setString (5, users.getAddress());preparedStatement.setString (6, users.getPostdate());preparedStatement.setString (7, users.getT el());//判断是否重复添加if(find(users.getUsername ())){rowsAffected =2;System.out.println("exist username");}else{rowsAffected = preparedStatement.executeUpdate ();System.out.println(rowsAffected + "add");}preparedStatement.close ();ConnDB.terminate();}catch (SQLException e){ConnDB.terminate();return 0;}return rowsAffected;}public int deleteUser (int id){int rowsAffected = 0;try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("DELETE FROM Buser WHERE userid = ?");preparedStatement.setInt (1, id);rowsAffected = preparedStatement.executeUpdate ();preparedStatement.close ();ConnDB.terminate();}catch (SQLException e){ConnDB.terminate();return 0;}return rowsAffected;}public int modifyUser (User users){int rowsAffected = 0;try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("UPDATE Buser SET username=?, rname=?, password=?, email=?, address=?, postdate=?, tel=? " +"WHERE userid =?");preparedStatement.setString (1, users.getUsername ());preparedStatement.setString (2, users.getRname ());preparedStatement.setString (3, users.getPassword());preparedStatement.setString (4, users.getEmail());preparedStatement.setString (5, users.getAddress());preparedStatement.setString (6, users.getPostdate());preparedStatement.setString (7, users.getT el());preparedStatement.setInt (8, users.getId ());rowsAffected = preparedStatement.executeUpdate ();ConnDB.terminate();}catch (SQLException e){ConnDB.terminate();return 0;}return rowsAffected;}public Collection getUser (){user = new ArrayList ();try{ConnDB.initialize(); // create database connectionPreparedStatement preparedStatement = conn.prepareStatement ("SELECT userid, username, rname, password, email, address, postdate, tel " +"FROM Buser");ResultSet resultSet = preparedStatement.executeQuery ();while (resultSet.next ()){User users = new User(resultSet.getInt (1), resultSet.getString (2), resultSet.getString (3), resultSet.getString (4),resultSet.getString (5), resultSet.getString (6), resultSet.getString (7), resultSet.getString (8));user.add(users);}}catch (SQLException e){return null;}ConnDB.terminate();//Collections.sort(user);return user;}public boolean isModify(String key,int id){boolean modifyIt=false;try{ConnDB.initialize(); // create database connection PreparedStatement preparedStatement = conn.prepareStatement ( "SELECT userid FROM Buser WHERE username = ? and userd <> ?"); preparedStatement.setString (1, key);preparedStatement.setInt (2, id);ResultSet resultSet = preparedStatement.executeQuery ();if (resultSet.next ()){modifyIt=true;preparedStatement.close ();ConnDB.terminate();}else{preparedStatement.close ();ConnDB.terminate();//return isValid;}}catch (SQLException e) {ConnDB.terminate();//return gotIt;}return modifyIt;}}。
数据库与管理信息系统报告题目:网上书店管理系统学院:信息工程与自动化学院专业:计算机科学与技术年级: 09级学生姓名:指导教师:日期: 2012-6-3教务处制目录一、需求分析; (2)二、系统设计内容; (2)三、系统逻辑设计; (3)四、系统功能需求分析; (6)五、总结; (10)六、参考资料; (11)七、附录; (11)一、需求分析;网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。
一个典型的网上商城一般都需要实现商品信息的动态提示、购物车管理、客户信息注册登录管理、订单处理等模块。
根据网上书店的基本需求,本系统需要完成的具体任务如下:1)书图查询: 当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者信息快速查询所需书目信息的功能。
2)购物车管理:当客户选择购买某图书产品时,应该能够将对应图书信息,如:价格、数量记录到对应的购物车中,并允许客户返回书目查询页面,选择其他商品,并添加到购物车中,当对应的购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。
3)订单处理:对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。
4)会员注册:为了能够实现图书商品的购买,需要管理客户相关的联系方式、送货地点等相关的信息。
二、系统设计内容;1)采用人机对话的操作方式,界面设计美观友好、信息查询灵活、方便、快捷、准确、数据存储安全可靠。
2)全面展示商城内所有商品。
3)为顾客提供一个方便、快捷的商品信息查询功能。
采用模糊查询查询数据。
4)会员可以随时修改自己的会员资料。
5)实现网上购物。
6)查看商城内的公告信息。
7)用户随时都可以查看自己的订单。
8)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
附录全部源代码package class Connect {private static Connection con = null;private static String url=jdbc:oracle:thin:@localhost:1521:ORCL;private static String driver = \;private static String user = scott;private static String pwd = iger;public static Connection getConnection(){try{(driver);con = (url, user, pwd);数据库连接成功!);} catch (ClassNotFoundException e) {驱动加栽失畋!);;} catch (SQLException e) {);数据库连接失败!} return con; } public static void main(String[] args) { (); }} package class docMenuAction implements ActionListener { RegisterFrame register =null; JPanel cusPanel = null; JPanel docPanel = null;public docMenuAction(RegisterFramG register){=register;—•-9—•Jpublic void actionPerformed(ActionEvent e) {于用户搜索商品public ArrayList getAllSellerGoods(){ArrayList list = new ArrayList();conn =();try{stateme nt =();String sql = select * from goods a,seller b where =;resultSet = (sql);while()){Seller seller = new Seller();(seller^ name));(address));Goods goods = new Goods();(seller);(goodsjd));(goods _n ame));(disco unt));um)); (Price));2012-9-192012-9-192012-9-192012-9-19etlmage());(null);(null);(false);etlmage());(600, 400);■/(null);(menuBao;setGoodsPanel();■t(goodsPa nel,;setSouthPa nel();setOrderPanel();(southPanel,;}quals())){泯泠?勘请输入商品编号或商品数量!);}else{int id =());int num = ((String) ());goods = (id);晚隈泠?勘您确定要购买吗)==0){讦()==0){泯泠?妙商品编号输入错误!);}else{if()<num){泯泠?妙商品数量不足!);}else{()-num);(goods);OrderDao order = new OrderDao();浪泠?勘购买成功!);setAr();setOr();0;}}}else{}}}});}etName();3r(i][7]=().getAddress();}} private void setArNull(){ for(int i=O;i<;i++){for(int j=O;j<ar[i].length;j++){ ar[i][j]=\;etName();or[i][3]=().getPrice();or[i][4]=().getDiscount();or[i][5]=().getPrice()*().getDiscount()*;or[i][6]=();or[i][7]=().getName();or[i][8]=().getAddress();} } private void setOrNull(){for(int i=O;i<;i++){for(int j=0;j<or[i].length;j++){ or[i][j]=\;}} }public static void main (String!) args) { BuyerFrame frame = new BuyerFrame();(true);}package class LoginFrame extends JFrame{抽癩瑯??抱決咗数杳浮?撇支?渠睥?慌敢?用户名:);抽癞f師??抱技潔扌巢慌敢??敝??抱注龙密码:);private JPasswordField pws = new JPasswordField();抽癩獅??牠注地淀?抱洼?渠睥?慌敢?角色:);抽癞砸??涪潢湿?i稍敬湿??敲??涪潢淡?蔽?球械柿崙叨商家?买家});抽癞砸??璜潴?珞?渠睥?畋毀湯龙确定);抽癩獅??璜潴?珞??蔽??瑾潴?取消);private String flag = null;public LoginFrame(){init();}private void init(){(320, 280);登录);龙(new lmagelcon(images/).getlmage());(null);(false);■/(null);(40, 20,150, 30);(userNameLabel);(120, 20, 150, 30);(useNameText);(40, 80, 150, 30);(pwdLabel); (120, 80, 150, 30); (pws);(40, 140, 70, 30);(roleLabel);(120,140, 150z 30);(roleBox);(40, 200, 70, 30);(btR);(new ActionListener() {(©Overridepublic void actionPerformed(ActionEvent e) {quals(f)){ flag = seller;} .equals(f)){ 晚龙买家flag = customer;}if(seller.equals(flag)){Seller seller = (), ()););}else{ --+()); if()==null){ 泯泠?擀用户名或密码输入错误setVisible(false);SellerFrame fame = new SellerFrame();(true);}if(customer.equals(flag)){Buyer buyer =(),());泯泠?妙用户名或密码输入错误);}else{setVisible(false);BuyerFrame frame = new BuyerFrame();(true);2012-9-20etlmage());(300, 400); etlmage());(600, 400);■f(null);(me nuBar;;setGoodsPanel();■/(goodsPa nel,;setSouthPanel();setOrderPanel();(southPanel,;}quals{))){泯泠?勘请输入商品编号!);}else{int id =());UpdateFrame frame = new UpdateFrame();Goods goods = new GoodsDao().getOneGoods(id); if()!=0){ (goods);(goods);(true);}else{浪泠?勘商品编号输入错误!);} });(btDelet);quals())){隈泠?妙请输入商品编号!);}else{int id =());GoodsDao dao = new GoodsDaof);晩隈泠?勘您确宦要删除吗)==0){if(id)!=O){浪泠?妙删除成功!);}else{隈泠?勘商品编号输入错误!!);}}else{} }} });(btAdd);(new ActionListener() {@Overridepublic void actionPerformed(Acti on Eve nt e) { etName();ar[i]⑺=().getAddress();} Jprivate void setArNull(){for(int i=0;i<;i++){for(int j=O;j<ar[i].length;j++){ar[i][j]=\;}} }etName(); or[i][3]=().getPrice(); or[i][4]=().getDiscount(); or[i][5]=().getPrice()*().getDiscount()#;or[i][6]=();or[i][7]=();}}private void setOrNull(){for(int i=0;i<;i++){ for(int j=0;j<or[i].length;j卄){or[i][j]=\;public static void main (String!] args) { SellerFrame frame = new SellerFrame();(true);class UpdateFrame extends JFrame{packageprivate static final Goods Goods = null;抽癩獅??抱注氟iliL浮??蔽??抱注龙商品名:);抽癩獅??抱注氤僦械散?渠睥?慌敢?价格:);抽癞瑚??抱注氤?猱涸浚??敵??抱注龙折扣:);抽癞瑚??抱注氤虬澎?渠睥?慌敢?数量:);private JTextField fieldName = new JTextField(20);private JTextField fieldPrice = new JTextField(2O); private JTextField fieldDiscount = new JTextField(2O); private JTextField fieldNum = new JTextField(2O);轴癩f師??璜潴?珞沓敲?渠睥?畋毀湯龙修改);抽癩獅??璜潴?珞憐据波?渠睥?畋毀湯茏取消); private Goods goods = new Goods();public UpdateFrame(){init();private void init(){(320z 330););龙修改商品信息(new lmagelcon(images/).getlmage());(null);(null); (false);// ;(null);setText(goods); setContentPanel();}private void setContentPanel(){(30, 30, 80, 30);(130, 30, 150, 30);(30, 90, 80, 30);(30, 150, 80, 30);(130, 150, 150, 30);(30, 200, 80, 30);(130, 200, 150, 30);(30, 250, 70, 30);(210, 250, 70, 30);(IbName);(fieldName);(IbPrice);(fieldPrice);(IbDiscount);(fieldDisco unt);(IbNum);(fieldNum);(btCancel);(btSure);(new ActionListener() {@Override public void actionPerformed(ActionEvent e) { // TODO Auto-generatedmethod stub setVisible(false); }});(nww ActionListener() {@Overridepublic void actionPerformed(Acti on Eve nt e) {//TODO Auto-generated method stub晩隈泠?妙您确定耍修改吗)==0){ GoodsDao dao = new GoodsDao();()));());()));()));(goods);setVisible(false);隈泠?勘修改成功! );}else{//}}});} public void setText(Goods goods){0);()));()));()));} public Goods getGoods() { return goods; } public void setGoods(Goods goods) { goods; } public static void main(String[] args) { UpdateFrame frame = new UpdateFrame(); (true); }}数据库SQL语句:create table seller(seller^ name varchar2(2O),pwd varchar2(20),address varchar2(200))insert into seller valuesf'niclascage'/长理专卖店'/1234567湖南长沙')select * from sellerdrop table sellercommitcreate table buyerfbuyerjd varchar(2O) primary key,buyer_ name varchar(2O)zpwd varchar2(2O)/address varchar(2OO))insert into buyer values(l lina'/林大专卖店7123456'/湖南长沙')select * from buyerdrop table buyercreate table goods(goodsjd int primary key,sellerjd varchar(20),goods _n ame varcharfSO),price int,discount int,num int,constraint fk_sellerjd foreign key(sellerjd) references seller(seller_id))insert into goods valuesfl/niclascage'/Java'^O^^O)・select * from goodsdrop table goodscreate table orders(orderjd int primary key,goodsjd int,sellerjd varchar(20),buyerjd varchar(20)znum int,constraint fk_goodsjd foreign key(goodsjd) references goods(goods_id), constraint fk_sellers_id foreign key(sellerjd) references seller(sellerjd)z constraint fk_buyerjd foreign key(buyerjd) referencesbuyer(buyerjd))select * from orders insert into orders values(l/l/niclascage,/,lina,/2)drop table orders; drop table goods; drop table buyer; drop table seller;。
主要代码说明新建WEB 项目1.在src目录下建包2.在com.db包下建DBConn.java文件,功能是连接数据库,主要代码如下:public static Connection getConnection(){String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shopping";String username="sa";String password="123456";Connection conn = null;try{Class.forName(driver); //调入驱动conn = DriverManager.getConnection(url,username,password);//连接数据库System.out.println("连接成功");}catch(Exception ex){System.out.println("连接失败:"+ex.getMessage());}return conn;}3.用main函数测试是否连接成功一、新建servlet类,类名为RegSave.java文件,web.xml配置如下<servlet><servlet-name>RegSave</servlet-name><servlet-class>com.servlet.RegSave</servlet-class></servlet><servlet-mapping><servlet-name>RegSave</servlet-name><url-pattern>/servlet/RegSave</url-pattern></servlet-mapping>在doPost函数中实现注册功能二、新建reg.jsp文件<form name="form1" method="post" action="/servlet/RegSave"> Action=”/servlet/RegSave”为RegSave.java文件配置的URL地址<table width="80%" border="1" align="center" cellpadding="1" cellspacing="1"><tr><td><div align="right">用户名:</div></td><td><input name="username" type="text" id="username"></td> <td> </td></tr><tr><td><div align="right">密码:</div></td><td><input name="pwd" type="password" id="pwd"></td><td> </td></tr><tr><td><div align="right">确认密码:</div></td><td><input name="pwdcfg" type="password" id="pwdcfg"></td> <td> </td></tr><tr><td><div align="right">真实姓名:</div></td><td><input name="realname" type="text" id="realname"></td> <td> </td></tr><tr><td><div align="right">邮件地址:</div></td><td><input name="email" type="text" id="email"></td><td> </td></tr><tr><td><div align="right">联系电话:</div></td><td><input name="tel" type="text" id="tel"></td><td> </td></tr><tr><td><div align="right">联系地址:</div></td><td><input name="addr" type="text" id="addr" size="50"></td> <td> </td></tr><tr><td><div align="right">身份:</div></td><td><select name="types" id="types"><option value="01" selected>注册用户</option><option value="02">管理员</option></select></td><td> </td></tr><tr><td colspan="3"><div align="center"><input type="submit" name="Submit" value="注册"> <input type="reset" name="Submit" value="重置"></div></td></tr></table>修改密码思路:1.判断用户是否登录,若未登录重定向到登录页面2.判断旧密码和用户密码是否准确,用户名从session.getAttribute(“username”), 与登录语句类似3.修改密码,update 用户set 密码=新密码where 用户名= session.getAttribute(“username”)具体实现:1.直接重定向到另一个JSP页面2.重定向到Servlet3.修改成功后回到管理中心页面修改用户资料:思路:1.判断用户是否登录,若未登录重定向到登录页面2.查询用户资料,显示到控件中,用户名从session.getAttribute(“username”),必须显示用户名,但不允许修改3.修改资料(主键,用户名,密码字段不允许修改),其它字段都可以修改4.修改完成后返回管理中心具体实现:5.直接重定向到另一个JSP页面,修改数据6.重定向到Servlet修改数据7.修改成功后回到管理中心页面图书类别管理要求:1.定义一个javabean保存数据,一个servlet控制流程2.点击菜单图书分类显示列表页面,点击新增链接到新增页面,点击修改进入servlet取数据,然后再重定向到修改页面;选择了删除进入servlet做删除操作,删除成功后重定向到列表页面.3.使用标签实现图书管理思路:1.加入文件上传的包()2.做新增图书的页面,要加载图书分类的数据到下拉框,第二表单必须加入enctype属性,enctype=multipart/form-data3.创建上传文件的servlet,参考Upload.java;1.获取普通控件的值:while(it.hasNext()){FileItem fileItem = (FileItem) it.next();//如果是普通字段if(fileItem.isFormField()){String itmevale = new String(fileItem.getString().getBytes("iso8859-1"), "gb2312");if(fileItem.getFieldName().equals("bookName")){//书名book.setBookName(itmevale);}else if(fileItem.getFieldName().equals("booktype")){//类别book.setBookTypeID(itmevale);}else if(fileItem.getFieldName().equals("author")){//作者book.setAuthors(itmevale);}else if(fileItem.getFieldName().equals("bookresume")){//描述book.setResume(itmevale);}else if(fileItem.getFieldName().equals("bookchapter")){//章节book.setChapter(itmevale);}else if(fileItem.getFieldName().equals("marketPrice")){//市场价book.setPrice(itmevale);}else if(fileItem.getFieldName().equals("discountPrice")){//优惠价book.setDiscount(itmevale);}else if(fileItem.getFieldName().equals("publisher")){//出版社book.setPublisher(itmevale);}2.获取文件控件的值if(fileItem.getName()!=null && fileItem.getSize()!=0){String path = request.getRealPath("/bookpic") + "//"; 保存目录java.util.Date date = new java.util.Date();//获取系统时间String strfile = date.toLocaleString();//生成字符串//2012-6-14 15:05:10strfile = strfile.replace(":", "");//删除:strfile = strfile.replace("-", "");//删除-strfile = strfile.replace(" ", "");//删除空格int pos = fileItem.getName().indexOf(".");strfile += fileItem.getName().substring(pos);//获取扩展名book.setPic(strfile);path += strfile;//生成目录和文件名File newFile = new File(path);3.保存数据com.bean.Books.Add(book);//保存数据//显示列表List list = new ArrayList();list = Books.findByAll(); //查询数据request.setAttribute("books", list);request.getRequestDispatcher("../BookList.jsp").forward(request, response);4.列表页面<c:forEach var="book" items="${books}"><tr><td width="14%" rowspan="2"><img src="../bookpic/${book.pic}" width="86"height="120"></td><td width="21%" height="64"><div align="center">作者</div></td><td width="29%"><div align="center">出版社</div></td><td width="19%"><div align="center">市场价</div></td><td width="17%"><div align="center">优惠价</div></td></tr><tr><td><div align="center">${book.authors}</div></td><td><div align="center">${book.publisher}</div></td><td><div align="center">${book.price}</div></td><td><div align="center">${book.discount}</div></td></tr><tr><td colspan="2">${book.bookName}</td><td colspan="3" align="right"><a href="../BookAdd.jsp">新增</a> <a href="#">修改</a> <a href="#">删除</a> </td></tr></c:forEach>4.JAVABEANpublic class Books {private String bookID;private String bookTypeID;private String bookName;private String authors;private String publisher;private String resume;private String chapter;private String pic;private String price;private String discount;5.新增图书Add()public static int Add(Books book){int ok=0;try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "insert intoBooks(BookTypeID,BookName,Authors,publisher,Resume,chapter,pic,Price,Discount) values(";sql += book.getBookTypeID() + ",'" + book.getBookName() + "','";sql += book.getAuthors() + "','" + book.getPublisher() + "','";sql += book.getResume() + "','" + book.getChapter() + "','";sql += book.getPic() + "'," + book.getPrice() + ",";sql += book.getDiscount() + ")";ok = stmt.executeUpdate(sql);}catch(Exception ex){System.out.println(ex.getMessage());}return ok;}6.查询所有图书findByAll()public static List findByAll(){List list = new ArrayList();try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "select * from books order by BookID";Books book = null;ResultSet rs = stmt.executeQuery(sql);while(rs.next()){book = new Books();book.setBookID(rs.getString("BookID"));book.setBookTypeID(rs.getString("BookTypeID"));book.setBookName(rs.getString("BookName"));book.setAuthors(rs.getString("Authors"));book.setPublisher(rs.getString("publisher"));book.setResume(rs.getString("Resume"));book.setChapter(rs.getString("chapter"));book.setPic(rs.getString("pic"));book.setPrice(rs.getString("Price"));book.setDiscount(rs.getString("Discount")) ;list.add(book);}}catch(Exception ex){System.out.println(ex.getMessage());}return list;}图书查询1.修改了head.jsp页面<form name="form1" method="post" action="<%=basePath %>servlet/Upload?action=find&id="> <input name="search" type="text" size="90"><input type="submit" name="Submit" value=" 搜索"></form>2.进入Upload servletif(action.equals("find")){List list = new ArrayList();list = Books.findByName(request.getParameter("search"),request.getParameter("id"));request.setAttribute("books", list);List list1 = new ArrayList();list1 = com.bean.BooksType.findByAll(); //查询图书分类的代码request.setAttribute("bookType", list1);System.out.println("list1.size()=" + list1.size());request.getRequestDispatcher("../find.jsp").forward(request, response);}3.在BooksType中增加findByAll()函数查询所有的图书分类资料public static List findByAll(){List list = new ArrayList();try{String sql = "select * from booktype order by booktypeid";Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);BooksType books = null;while(rs.next()){books = new BooksType();books.setBooktypeid(rs.getString("booktypeid"));books.setBooktypename(rs.getString("booktypename"));books.setDemo(rs.getString("demo"));list.add(books);}}catch(Exception ex){System.out.println(ex.getMessage());}return list;}4.在find.jsp页面中显示<c:forEach var="btype" items="${bookType}"><tr><td><div align="center"><ahref="<%=basePath1%>servlet/Upload?action=find&id=${btype.booktypeid}">${btype.booktypename} </a></div></td></tr></c:forEach>5.调用Books类的findByname函数(搜索和图书分类的链接地址一样)public static List findByName(String bookName,String booktypeid){List list = new ArrayList();try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "select * from books order by bookid";if(bookName != null && !bookName.equals("")){//按图书名称模糊查询sql = "select * from books where bookName like '%"+bookName + "%'";}if(booktypeid != null && !booktypeid.equals("")){//按分类进行查询sql = "select * from books where BookTypeID=" +booktypeid;}//System.out.println(sql);Books book = null;ResultSet rs = stmt.executeQuery(sql);while(rs.next()){book = new Books();book.setBookID(rs.getString("BookID"));book.setBookTypeID(rs.getString("BookTypeID"));book.setBookName(rs.getString("BookName"));book.setAuthors(rs.getString("Authors"));book.setPublisher(rs.getString("publisher"));book.setResume(rs.getString("Resume"));book.setChapter(rs.getString("chapter"));book.setPic(rs.getString("pic"));book.setPrice(rs.getString("Price"));book.setDiscount(rs.getString("Discount")) ;list.add(book);}}catch(Exception ex){System.out.println(ex.getMessage());}return list;}6.图书详情servlet/Upload?action=detail&id=1//和之前做的action=update的代码类似if(action.equals("detail")){Books book = Books.findByID(request.getParameter("id"));request.setAttribute("book", book);request.getRequestDispatcher("../BookDetail.jsp").forward(request, response);}public static Books findByID(String bookid){Books book = new Books();try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "select * from books where bookid=" + bookid;//System.out.println(sql);ResultSet rs = stmt.executeQuery(sql);if(rs.next()){book.setBookID(rs.getString("BookID"));book.setBookTypeID(rs.getString("BookTypeID"));book.setBookName(rs.getString("BookName"));book.setAuthors(rs.getString("Authors"));book.setPublisher(rs.getString("publisher"));book.setResume(rs.getString("Resume"));book.setChapter(rs.getString("chapter"));book.setPic(rs.getString("pic"));book.setPrice(rs.getString("Price"));book.setDiscount(rs.getString("Discount")) ;}}catch(Exception ex){System.out.println(ex.getMessage());}return book;}购物车在ShopCar.jsp中显示效果1、创建Orders 类//处理订单数据public class Orders {private String orderID; //订单编号private String userName; //用户名private String orderTime; //订单时间private String realName; //真实姓名private String tel; //电话private String addr; //地址private String postcode; //邮编private String sendType; //邮寄类型private String paidType;//付款类型private String orderStatus;//订单状态00-购物车;01-订单;02-付款;03-发货;04-收货函数省略//新增订单public static int Add(Orders order){int ok=0;try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();//查询用户资料String sql ="select * from 用户where 用户名='" + order.getUserName() + "'";ResultSet rs = stmt.executeQuery(sql);if(rs.next()){order.setRealName(rs.getString("真实姓名"));order.setTel(rs.getString("联系电话"));order.setAddr(rs.getString("联系地址"));order.setPostcode("342700");order.setSendType("邮寄");order.setPaidType("网上支付");order.setOrderStatus("00");//购物车内的状态}//查询购物车信息sql = "select * from Orders where username='" + order.getUserName() + "' and orderStatus=00";rs = stmt.executeQuery(sql);if(!rs.next()){ //如果有作修改操作sql = "insert intoOrders(userName,realName,tel,addr,postcode,sendType,paidType,orderStatus) values('";sql += order.getUserName() + "','";sql += order.getRealName() + "','";sql += order.getTel() + "','";sql += order.getAddr() + "','";sql += order.getPostcode() + "','";sql += order.getSendType() + "','";sql += order.getPaidType() + "','";sql += order.getOrderStatus() + "')";System.out.println(sql);ok = stmt.executeUpdate(sql);}}catch(Exception ex){System.out.println(ex.getMessage());}return ok;}//查找订单public static Orders findByAll(Orders order){try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "select * from Orders where username='" + order.getUserName() + "' and orderStatus='" + order.getOrderStatus() + "'";ResultSet rs = stmt.executeQuery(sql);if(rs.next()){order.setOrderID(rs.getString("orderID"));order.setOrderTime(rs.getString("orderTime"));order.setRealName(rs.getString("realName"));order.setTel(rs.getString("tel"));order.setAddr(rs.getString("addr"));order.setPostcode(rs.getString("postcode"));order.setSendType(rs.getString("sendType"));order.setPaidType(rs.getString("paidType"));}}catch(Exception ex){System.out.println(ex.getMessage());}return order;}//更新订单public static int update(Orders order){int ok=0;try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();//更新订单数据String sql = "update Orders set realName='"+ order.getRealName() + "',";sql += "tel='" + order.getTel() + "',";sql += "addr='" +order.getAddr() + "',";sql += "postcode='"+order.getPostcode() + "',";sql += "sendType='" + order.getSendType() + "',";sql += "paidType='" + order.getPaidType() + "',";sql += "orderStatus='01' where orderID =" + order.getOrderID(); //生成订单01System.out.println(sql);ok = stmt.executeUpdate(sql);}catch(Exception ex){System.out.println(ex.getMessage());}return ok;}2.创建OrderDetail类/订单明细数据public class OrderDetail {private String detailID; //明细主键private String orderID; //订单号private String bookID; //图书编号private String bookCount; //购买数量private String price; //购买价格private String bookName; //图书名称private String totalPrice; //小计//部分函数省略//新增购买的图书资料public static int Add(OrderDetail detail){int ok=0;try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "";sql = "insert into OrderDetail(bookID,orderID,bookCount,price) values(";sql += detail.getBookID() + "," ;sql += detail.getOrderID() + ",";sql += detail.getBookCount() + ",";sql += detail.getPrice() + ")";System.out.println(sql);ok = stmt.executeUpdate(sql);}catch(Exception ex){System.out.println(ex.getMessage());}return ok;}//查找指定的订单明细public static List findByAll(String orderid){List list = new ArrayList();try{Connection conn = com.db.DBConn.getConnection();Statement stmt = conn.createStatement();String sql = "select o.*,b.bookname,(bookcount*o.price)as totalprice from OrderDetail o left outer join books b on b.bookid=o.bookid where orderID=" + orderid;ResultSet rs = stmt.executeQuery(sql);OrderDetail detail =null;while(rs.next()){detail = new OrderDetail();detail.setDetailID(rs.getString("detailID"));detail.setOrderID(rs.getString("orderID"));detail.setBookID(rs.getString("bookID"));detail.setBookCount(rs.getString("bookCount"));detail.setPrice(rs.getString("price"));detail.setBookName(rs.getString("bookName"));detail.setTotalPrice(rs.getString("totalPrice"));list.add(detail);}}catch(Exception ex){System.out.println(ex.getMessage());}return list;}3.创建servlet类ShopCarif(action.equals("add")){ //生成购物车(新增订单)String bookid = request.getParameter("bookid"); //编号String bookPrice = request.getParameter("bookPrice"); //价格Orders order = new Orders();order.setUserName((String)session.getAttribute("username"));Orders.Add(order);//新增订单表order.setOrderStatus("00");order = Orders.findByAll(order); //查找订单request.setAttribute("Orders", order);OrderDetail detail = new OrderDetail();detail.setOrderID(order.getOrderID());detail.setBookID(bookid);detail.setBookCount(shopCount);System.out.println("detail.getBookCount()=" + detail.getBookCount());detail.setPrice(bookPrice);OrderDetail.Add(detail); //新增明细List list = new ArrayList();list = OrderDetail.findByAll(order.getOrderID()); //查找明细数据request.setAttribute("OrderDetail", list);request.getRequestDispatcher("../ShopCar.jsp").forward(request, response); }else if(action.equals("list")){ //查找购物车内的信息Orders order = new Orders();order.setUserName((String)session.getAttribute("username"));order.setOrderStatus("00");order = Orders.findByAll(order);request.setAttribute("Orders", order);OrderDetail detail = new OrderDetail();List list = new ArrayList();list = OrderDetail.findByAll(order.getOrderID());request.setAttribute("OrderDetail", list);request.getRequestDispatcher("../ShopCar.jsp").forward(request, response);}else if(action.equals("order")){ //查看生成的订单信息Orders order = new Orders();order.setUserName((String)session.getAttribute("username"));order.setOrderStatus("01");order = Orders.findByAll(order);request.setAttribute("Orders", order);OrderDetail detail = new OrderDetail();List list = new ArrayList();list = OrderDetail.findByAll(order.getOrderID());request.setAttribute("OrderDetail", list);request.getRequestDispatcher("../ShopCar.jsp").forward(request, response);}else if(action.equals("updateSave")){ //生成订单,订单状态00改为01 Orders order = new Orders();order.setOrderID(request.getParameter("id"));order.setRealName(request.getParameter("realName"));order.setTel(request.getParameter("tel"));order.setPostcode(request.getParameter("postcode"));order.setAddr(request.getParameter("addr"));order.setSendType(request.getParameter("sendType"));order.setPaidType(request.getParameter("paidType"));Orders.update(order);order.setUserName((String)session.getAttribute("username"));order.setOrderStatus("01");order = Orders.findByAll(order);request.setAttribute("Orders", order);OrderDetail detail = new OrderDetail();List list = new ArrayList();list = OrderDetail.findByAll(order.getOrderID());request.setAttribute("OrderDetail", list);request.getRequestDispatcher("../myOrder.jsp").forward(request, response); }。
JavaWeb:⽹上书店的案例功能分析:只有⼀个⾓⾊客户,客户可以 --查看图书信息(包括查看图书详细信息,使⽤条件(例价格区间)查看图书信息,对图书进⾏翻页) --把图书加⼊购物车 --查看购物车 --修改购物车(包括清空购物车,修改购物车单本图书数量,删除单本图书) --结账(填写⽤户名和账号信息) --查看交易记录总体架构:MVC 设计模式: --model:POJO --controller:Servlet --view:JSP + EL + JSTL技术选型: 数据库:Mysql 数据源:C3P0 JDBC ⼯具:DBUtils 事务解决⽅案:Filter + ThreadLocal Ajax 解决⽅案:jQuery + JavaScript + JSON + google-gson 层之间解耦⽅案:⼯⼚设计模式数据表设计:在 Mysql 数据库中建好这些数据表。
配置好环境实体类设计:Account(账户表,⽤于⽀付),User(客户表,存储客户基本信息),Trade(交易项),TradeItem(交易记录),Book,ShoppingCartItem,ShoppingCartDAO 层设计:(这⾥先每个⽅法⼿动的获取Connection,在后⾯操作事务时,再改成获取统⼀的Connection) - Dao 接⼝,定义 Dao 的基本操作,使⽤BaseDao 实现 Dao 接⼝。
- BaseDao :使⽤ DBUtils ⼯具类提供 Dao 接⼝的具体实现。
BookDao 接⼝:⽤于定义操作 Book 实体类的基本⽅法。
- BookDaoImpl :使⽤ BaseDao 中的⽅法实现 BookDao。
Dao 接⼝代码:1package com.hnust.bookstore.dao;23import java.util.List;45/**6 * Dao 接⼝,定义 Dao 的基本操作,由BaseDao 提供实现。
附录全部源代码package com.shoeShop.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class Connect {private static Connection con = null;private static String url="jdbc:oracle:thin:@localhost:1521:ORCL";private static String driver = "oracle.jdbc.driver.OracleDriver";private static String user = "scott";private static String pwd = "tiger";public static Connection getConnection(){try {Class.forName(driver);con = DriverManager.getConnection(url, user, pwd);System.out.println("数据库连接成功!");} catch (ClassNotFoundException e) {System.out.println("驱动加载失败!");;} catch (SQLException e) {System.out.println("数据库连接失败!");}return con;}public static void main(String[] args) {Connect.getConnection();}}package com.shoeShop.action;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JPanel;import com.shoeShop.view.RegisterFrame;public class docMenuAction implements ActionListener { RegisterFrame register = null;JPanel cusPanel = null;JPanel docPanel = null;public docMenuAction(RegisterFrame register){ this.register = register;this.cusPanel = register.cusPanel;this.docPanel = register.docPanel;}public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubregister.flag = 1;//System.out.println(register.flag);register.remove(cusPanel);register.add(docPanel);docPanel.updateUI();}}package com.shoeShop.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.shoeShop.db.Connect;import com.shoeShop.entity.Buyer;import com.shoeShop.entity.Seller;public class BuyerDao {private static Connection conn;private static Statement statement;private static ResultSet resultSet;//插入数据,用于注册public int insertBuyer(Buyer buyer){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "insert into buyer values('"+buyer.getId()+"','"+buyer.getName()+"','"+buyer.getPwd()+"','"+buyer.getAddress()+"')" ;// System.out.println("buyer"+sql);flag = statement.executeUpdate(sql);statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}// System.out.println(flag);return flag;}//通过用户名和密码查询,用于登录public static Buyer getBuyer(String name,String pwd){conn = Connect.getConnection();Buyer buyer = new Buyer();try {statement = conn.createStatement();String sql = "select * from buyer where buyer_id='"+name+"' and pwd = '"+pwd+"'";resultSet = statement.executeQuery(sql);while(resultSet.next()){buyer.setId(resultSet.getString("buyer_id"));buyer.setName(resultSet.getString("buyer_name"));buyer.setPwd(resultSet.getString("pwd"));buyer.setAddress(resultSet.getString("address"));}resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return buyer;}public static void main(String[] args) {BuyerDao dao = new BuyerDao();System.out.println(dao.getBuyer("zxk", "654321")); // Buyer buyer = new Buyer();// buyer.setId("lily");// buyer.setName("长理专卖");// buyer.setPwd("123456");// buyer.setAddress("湖南长沙");// dao.insertBuyer(buyer);}}package com.shoeShop.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import com.shoeShop.db.Connect;import com.shoeShop.entity.Goods;import com.shoeShop.entity.Seller;import er;public class GoodsDao {private static Connection conn;private static Statement statement;private static ResultSet resultSet;//查询登录商家的所有商品,用于商家管理自己的商品public ArrayList getAllGoods(){ArrayList list = new ArrayList();conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "select * from goods a,seller b where a.seller_id=b.seller_id and b.seller_id='"+User.getUserName()+"'";resultSet = statement.executeQuery(sql);while(resultSet.next()){Seller seller = new Seller();seller.setName(resultSet.getString("seller_name"));seller.setAddress(resultSet.getString("address"));Goods goods = new Goods();goods.setSeller(seller);goods.setId(resultSet.getInt("goods_id"));goods.setName(resultSet.getString("goods_name"));goods.setSeller_id(resultSet.getString("seller_id"));goods.setDiscount(resultSet.getInt("discount"));goods.setNum(resultSet.getInt("num"));goods.setPrice(resultSet.getInt("price"));// System.out.println(goods.toString());list.add(goods);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}//查询所有商家的所有商品.用于用户搜索商品public ArrayList getAllSellerGoods(){ArrayList list = new ArrayList();conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "select * from goods a,seller b where a.seller_id=b.seller_id";resultSet = statement.executeQuery(sql);while(resultSet.next()){Seller seller = new Seller();seller.setName(resultSet.getString("seller_name"));seller.setAddress(resultSet.getString("address"));Goods goods = new Goods();goods.setSeller(seller);goods.setId(resultSet.getInt("goods_id"));goods.setName(resultSet.getString("goods_name"));goods.setSeller_id(resultSet.getString("seller_id"));goods.setDiscount(resultSet.getInt("discount"));goods.setNum(resultSet.getInt("num"));goods.setPrice(resultSet.getInt("price"));// System.out.println(goods.toString());list.add(goods);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}//根据商品号查询商品信息public Goods getOneGoods(int id){Goods goods = new Goods();conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "select * from goods where goods_id = "+id;resultSet = statement.executeQuery(sql);while(resultSet.next()){goods.setId(id);goods.setName(resultSet.getString("goods_name"));goods.setPrice(resultSet.getInt("price"));goods.setNum(resultSet.getInt("num"));goods.setDiscount(resultSet.getInt("discount"));goods.setSeller_id(resultSet.getString("seller_id"));goods.setNum(resultSet.getInt("num"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return goods;}//修改商品信息public int updateGoods(Goods goods){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "update goods set goods_name='"+goods.getName()+"',price ="+goods.getPrice()+",discount ="+goods.getDiscount()+",num="+goods.getNum()+" where goods_id="+goods.getId();flag = statement.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return flag;}//通过id删除商品public int deleteById(int id){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "delete goods where goods_id = "+id;flag = statement.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return flag;}//添加public int insertGoods(Goods goods){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = " insert into goods values((select max(goods_id+1) from goods),'"+User.getUserName()+"','"+goods.getName()+"',"+goods.getPrice()+","+goods.getDisco unt()+","+goods.getNum()+")";flag = statement.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return flag;}public static void main(String[] args) {GoodsDao dao = new GoodsDao();// Goods goods = new Goods();// goods.setName("c++");// goods.setPrice(50);// User.setUserName("niclascage");// goods.setDiscount(8);// goods.setNum(10);// System.out.println("main");// System.out.println("ii"+dao.insertGoods(goods)); // System.out.println(dao.deleteById(4));// Goods goods = new Goods();// goods.setId(1);// goods.setName("oracle");// goods.setPrice(50);// goods.setDiscount(8);// goods.setNum(5);// System.out.println(dao.updateGoods(goods));dao.getAllSellerGoods();// System.out.println(dao.getOneGoods(1));}}package com.shoeShop.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import com.shoeShop.db.Connect;import com.shoeShop.entity.Goods;import com.shoeShop.entity.Order;import com.shoeShop.entity.Seller;import er;public class OrderDao {private static Connection conn;private static Statement statement;private static ResultSet resultSet;//插入public int inserOerderByGoods(Goods goods, int num){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "insert into orders values((select max(order_id+1) from orders),"+goods.getId()+",'"+goods.getSeller_id()+"','"+User.getUserName()+"',"+num+")";flag = statement.executeUpdate(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return flag;}//查询登录用户的所有订单public ArrayList getOrder(){ArrayList list = new ArrayList();conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "select * from orders a,seller b,goods c where a.seller_id=b.seller_id and a.goods_id=c.goods_id and a.buyer_id = '"+User.getUserName()+"'";resultSet = statement.executeQuery(sql);while(resultSet.next()){Order order = new Order();Goods goods = new Goods();Seller seller = new Seller();order.setId(resultSet.getInt("order_id"));order.setNum(resultSet.getInt("num"));order.setGoods_id(resultSet.getInt("goods_id"));goods.setId(resultSet.getInt("goods_id"));goods.setPrice(resultSet.getShort("price"));goods.setPrice(resultSet.getInt("price"));goods.setDiscount(resultSet.getInt("discount"));goods.setName(resultSet.getString("goods_name"));seller.setName(resultSet.getString("seller_name"));seller.setAddress(resultSet.getString("address"));order.setSeller(seller);order.setGoods(goods);// System.out.println(order.toString());list.add(order);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}//查询登录商家的所有订单public ArrayList getSellerOrder(){ArrayList list = new ArrayList();conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "select * from orders a,seller b,goods c where a.seller_id=b.seller_id " +"and a.goods_id=c.goods_id and a.seller_id= '"+User.getUserName()+"'";resultSet = statement.executeQuery(sql);while(resultSet.next()){Order order = new Order();Goods goods = new Goods();Seller seller = new Seller();order.setId(resultSet.getInt("order_id"));order.setNum(resultSet.getInt("num"));order.setGoods_id(resultSet.getInt("goods_id"));order.setBuyer_id(resultSet.getString("buyer_id"));goods.setId(resultSet.getInt("goods_id"));goods.setPrice(resultSet.getShort("price"));goods.setPrice(resultSet.getInt("price"));goods.setDiscount(resultSet.getInt("discount"));goods.setName(resultSet.getString("goods_name"));seller.setName(resultSet.getString("seller_name"));seller.setAddress(resultSet.getString("address"));order.setSeller(seller);order.setGoods(goods);list.add(order);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return list;}public static void main(String[] args) {OrderDao dao = new OrderDao();dao.getOrder();}}package com.shoeShop.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.shoeShop.db.Connect;import com.shoeShop.entity.Seller;public class SellerDao {private static Connection conn;private static Statement statement;private static ResultSet resultSet;//插入数据,用于注册public int insertSeller(Seller seller){int flag = 0;conn = Connect.getConnection();try {statement = conn.createStatement();String sql = "insert into seller values('"+seller.getId()+"','"+seller.getName()+"','"+seller.getPwd()+"','"+seller.getAddress()+"')";flag = statement.executeUpdate(sql);statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return flag;}//通过用户名和密码查询,用于登录public static Seller getSeller(String name,String pwd){conn = Connect.getConnection();Seller seller = new Seller();try {statement = conn.createStatement();String sql = "select * from seller where seller_id='"+name+"' and pwd = '"+pwd+"'";resultSet = statement.executeQuery(sql);while(resultSet.next()){seller.setId(resultSet.getString("seller_id"));seller.setName(resultSet.getString("seller_name"));seller.setPwd(resultSet.getString("pwd"));seller.setAddress(resultSet.getString("address"));}resultSet.close();statement.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return seller;}public static void main(String[] args) {SellerDao dao = new SellerDao();// System.out.println(dao.getSeller("蒋斌", "654321"));// Seller seller = new Seller();// seller.setId("lily");// seller.setName("长理专卖");// seller.setPwd("123456");// seller.setAddress("湖南长沙");// dao.insertSeller(seller);}}package com.shoeShop.entity; /***功能:商家实体类* @author:蒋斌*2012-9-19下午4:17:40*/public class Buyer {private String id;private String name;private String address;private String pwd;public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getAddress() {return address;}public void setAddress(String address) { this.address = address;}@Overridepublic String toString() {return "Buyer [id=" + id + ", name=" + name + ", address=" + address + "]";}}package com.shoeShop.entity;/****功能:商品实体类* @author:蒋斌*2012-9-19下午4:26:05*/public class Goods {private int id;private String seller_id;private Seller seller;private String name;private int price;private int discount;private int num;public Seller getSeller() {return seller;}public void setSeller(Seller seller) { this.seller = seller;}public int getDiscount() {return discount;}public void setDiscount(int discount) { this.discount = discount;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getSeller_id() {return seller_id;}public void setSeller_id(String seller_id) {this.seller_id = seller_id;}public String getName() {return name;}public void setName(String name) { = name;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}@Overridepublic String toString() {return "Goods [id=" + id + ", seller_id=" + seller_id + ", seller="+ seller + ", name=" + name + ", price=" + price+ ", discount=" + discount + ", num=" + num + "]";}}package com.shoeShop.entity; /****功能:订单实体类* @author:蒋斌*2012-9-19下午4:26:24*/public class Order {private int id;private int goods_id;private String seller_id;private String buyer_id;private Goods goods;private Seller seller;private Buyer buyer;private int num;public int getNum() {return num;}public void setNum(int num) {this.num = num;}public Goods getGoods() {return goods;}public void setGoods(Goods goods) { this.goods = goods;}public Seller getSeller() {return seller;}public void setSeller(Seller seller) { this.seller = seller;}public Buyer getBuyer() {return buyer;}public void setBuyer(Buyer buyer) { this.buyer = buyer;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getGoods_id() {return goods_id;}public void setGoods_id(int goods_id) {this.goods_id = goods_id;}public String getSeller_id() {return seller_id;}public void setSeller_id(String seller_id) {this.seller_id = seller_id;}public String getBuyer_id() {return buyer_id;}public void setBuyer_id(String buyer_id) {this.buyer_id = buyer_id;}@Overridepublic String toString() {return "Order [id=" + id + ", goods_id=" + goods_id + ", seller_id="+ seller_id + ", buyer_id=" + buyer_id + ", goods=" + goods+ ", seller=" + seller + ", buyer=" + buyer + ", num=" + num+ "]";}}package com.shoeShop.entity;/***功能:买家实体类* @author:*2012-9-19下午4:16:46*/public class Seller {private String id;private String name;private String pwd;private String address;public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "Seller [id=" + id + ", name=" + name + ", pwd=" + pwd+ ", address=" + address + "]";}}package com.shoeShop.imp;public class User {private static int flag = 0;private static String userName;private static String pwd;public static String getPwd() {return pwd;}public static void setPwd(String pwd) {User.pwd = pwd;}public static String getUserName() {return userName;}public static void setUserName(String userName) { erName = userName;}public static int getFlag() {return flag;}public static void setFlag(int flag) {User.flag = flag;}}package com.shoeShop.view;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;import com.shoeShop.dao.GoodsDao;import com.shoeShop.entity.Goods;public class AddGoodsFrame extends JFrame{private static final Goods Goods = null;private JLabel lbName = new JLabel("商品名:");private JLabel lbPrice = new JLabel("价格:");private JLabel lbDiscount = new JLabel("折扣:");private JLabel lbNum = new JLabel("数量:");private JTextField fieldName = new JTextField(20);private JTextField fieldPrice = new JTextField(20);private JTextField fieldDiscount = new JTextField(20);private JTextField fieldNum = new JTextField(20);private JButton btSure = new JButton("确定");private JButton btCancel = new JButton("取消");private Goods goods = new Goods();public AddGoodsFrame(){init();}private void init(){this.setSize(320, 330);this.setTitle("商品添加");this.setIconImage(new ImageIcon("images/1.png").getImage());this.setLayout(null);this.setLocationRelativeTo(null);this.setResizable(false);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLayout(null);setContentPanel();}private void setContentPanel(){lbName.setBounds(30, 30, 80, 30);fieldName.setBounds(130, 30, 150, 30);lbPrice.setBounds(30, 90, 80, 30);fieldPrice.setBounds(130, 90, 150, 30);lbDiscount.setBounds(30, 150, 80, 30);fieldDiscount.setBounds(130, 150, 150, 30);lbNum.setBounds(30, 200, 80, 30);fieldNum.setBounds(130, 200, 150, 30);btCancel.setBounds(30, 250, 70, 30);btSure.setBounds(210, 250, 70, 30);this.add(lbName);this.add(fieldName);this.add(lbPrice);this.add(fieldPrice);this.add(lbDiscount);this.add(fieldDiscount);this.add(lbNum);this.add(fieldNum);this.add(btCancel);this.add(btSure);btCancel.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubsetVisible(false);}});btSure.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(JOptionPane.showConfirmDialog(null, "您确定要添加吗?")==0){ GoodsDao dao = new GoodsDao();goods.setDiscount(Integer.valueOf(fieldDiscount.getText()));goods.setName(fieldName.getText());goods.setNum(Integer.valueOf(fieldNum.getText()));goods.setPrice(Integer.valueOf(fieldPrice.getText()));dao.insertGoods(goods);setVisible(false);JOptionPane.showMessageDialog(null, "添加成功!");}else{//}}});}public Goods getGoods() {return goods;}public void setGoods(Goods goods) {this.goods = goods;}public static void main(String[] args) {UpdateFrame frame = new UpdateFrame();frame.setVisible(true);}}package com.shoeShop.view;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import com.shoeShop.dao.GoodsDao;import com.shoeShop.dao.OrderDao;import com.shoeShop.entity.Goods;import com.shoeShop.entity.Order;public class BuyerFrame extends JFrame{private JPanel goodsPanel = new JPanel();//中间面板private JPanel orderPanel = new JPanel();//订单面板private JPanel southPanel = new JPanel();//南边用于方按钮的面板private JMenuBar menuBar = new JMenuBar();private JMenu goodsMenu = new JMenu("商品管理");private JMenu orderMenu = new JMenu("订单管理");private JMenuItem goodsMenuItem = new JMenuItem("商品购买");private JMenuItem orderMenuItem = new JMenuItem("订单管理");// private JButton btDelet = new JButton("删除");private JButton btAdd = new JButton("购买");private JComboBox numBox = new JComboBox(new String[]{"1","2","3","4","5","6","7","8","9"});// private JButton btUpdate = new JButton("修改");private JTextField fieldId = new JTextField(15);Object ar[][] =new Object[80][8];Object or[][] =new Object[80][9];public BuyerFrame(){init();}private void init(){setMenuBar();this.setTitle("网上鞋购系统");this.setIconImage(new ImageIcon("images/1.png").getImage());this.setSize(600, 400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);this.add(menuBar,BorderLayout.NORTH);setGoodsPanel();goodsPanel.setBackground(Color.GRAY);this.add(goodsPanel,BorderLayout.CENTER);orderPanel.setBackground(Color.LIGHT_GRAY);setSouthPanel();setOrderPanel();this.add(southPanel,BorderLayout.SOUTH);}//borderlayout 北边面板设置private void setMenuBar(){menuBar.add(goodsMenu);goodsMenu.add(goodsMenuItem);goodsMenuItem.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubsetAr();remove(orderPanel);add(goodsPanel);goodsPanel.updateUI();}});menuBar.add(orderMenu);orderMenu.add(orderMenuItem);orderMenuItem.addActionListener(new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubsetOr();。