mysql 购物车设计_购物车的设计与实现

本文介绍了如何使用MySQL设计和实现购物车系统,包括UserDAO、OrderDAO和OrderItemDAO的详细操作,涉及用户登录、订单保存及订单项的插入。通过示例代码展示了如何连接数据库并执行SQL语句,以完成数据的增删查改。
摘要由CSDN通过智能技术生成

packagedao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importbean.User;public classUserDAO {public static voidmain(String[] args) {

System.out.println(new UserDAO().getUser("tom", "123").getId());

}publicUser getUser(String name, String password) {

User result= null;try{

Class.forName("com.mysql.jdbc.Driver");

Connection c= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8","root", "admin");

String sql= "select * from user where name = ? and password = ?";

PreparedStatement ps=c.prepareStatement(sql);

ps.setString(1, name);

ps.setString(2, password);

ResultSet rs=ps.executeQuery();if(rs.next()){

result= newUser();

result.setId(rs.getInt(1));

result.setPassword(password);

result.setName(name);

}

ps.close();

c.close();

}catch(ClassNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}returnresult;

}

}

OrderDAO:

OrderDAO把订单对象保存到数据库中。

这里需要注意的是,Order对象保存到数据库中后,该对象就会有对应的id,这个id,在后续保存OrderItem的时候,是作为order id存在的。

所以在保存的数据库的时候,要

packagedao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importbean.Order;public classOrderDAO {public voidinsert(Order o) {try{

Class.forName("com.mysql.jdbc.Driver");

Connection c= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8","root", "admin");

String sql= "insert into order_ values(null,?)";

PreparedStatement ps=c.prepareStatement(sql);

ps.setInt(1, o.getUser().getId());

ps.execute();

ResultSet rs=ps.getGeneratedKeys();if(rs.next()) {int id = rs.getInt(1);

o.setId(id);

}

ps.close();

c.close();

}catch(ClassNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

OrderItemDAO:

packagedao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importbean.OrderItem;importbean.Product;public classOrderItemDAO {public static voidmain(String[] args) {

}public voidinsert(OrderItem oi) {try{

Class.forName("com.mysql.jdbc.Driver");

Connection c= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8","root", "admin");

String sql= "insert into orderitem values(null,?,?,?)";

PreparedStatement ps=c.prepareStatement(sql);

ps.setInt(1,oi.getProduct().getId());

ps.setInt(2,oi.getNum());

ps.setInt(3,oi.getOrder().getId());

ps.execute();

ps.close();

c.close();

}catch(ClassNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

创建jsp页面

(在上面的一些实体类中,有些变量是私有变量,需创建set/get()方法,在jsp页面中使用EL表达式时,可直接使用“对象.属性名”来读其值;使用jstl需要导入两个包)

创建用户登录页面login.jsp:

用户登录

账号:
密码:

12e25cf3e75bcfb7054bb65ced9b0945.png

创建商品展示页面listProduct.jsp:

商品展示页

当前用户: ${user.name}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值