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:
用户登录账号:
密码:
创建商品展示页面listProduct.jsp:
商品展示页当前用户: ${user.name}