java 订单支付_Java基础100 把购物车中的商品购买支付、生成订单(Servlet技术,简单演示,支付功能省略,只是演示整个流程而已)...

1 packagecom.shore.dao.impl;2

3 importjava.sql.Connection;4 importjava.sql.PreparedStatement;5 importjava.sql.ResultSet;6 importjava.sql.SQLException;7 importjava.util.ArrayList;8 importjava.util.List;9

10 importcom.shore.dao.OrderDao;11 importcom.shore.entity.Book;12 importcom.shore.entity.Orders;13 importcom.shore.entity.OrdersItem;14 importcom.shore.entity.User;15 importcom.shore.util.IdGeneratorKey;16 importcom.shore.util.JdbcUtil;17

18 /**

19 *@authorDSHORE/2019-4-2620 *21 */

22 public class OrderDaoImpl implementsOrderDao {23 Connection connection = null;24 PreparedStatement pStatement = null;25 ResultSet resultSet = null;26

27 //添加订单信息(即:用户付款后,将该信息添加到我的订单中。即 :保存到数据库的订单表中)

28 public voidaddOrders(Orders orders, User user) {29 connection =JdbcUtil.getConnection();30 try{31 String sql = "insert into orders (id,orderId,num,price,state,user_id) values(?,?,?,?,?,?);";32 pStatement =connection.prepareStatement(sql);33 //String orderId = IdGeneratorKey.genOrdersId();34 //String ids = IdGeneratorKey.getPrimaryKey();//这两个都不需要,直接从实体类中获取(servlet获取页面中的值,已经存到实体类中了)

35 pStatement.setString(1,orders.getId());36 pStatement.setString(2,orders.getOrderId());37 pStatement.setInt(3,orders.getNum());38 pStatement.setFloat(4,orders.getPrice());39 pStatement.setInt(5,orders.getState());40 pStatement.setString(6,user.getId());41 pStatement.executeUpdate();42 //订单中的订单项

43 List items =orders.getItems();44 if(items != null && items.size() > 0){//订单项中 有东西,才添加进数据库中的订单项表

45 String sql2 = "insert into ordersitem (id,num,price,orders_id,book_id) values(?,?,?,?,?)";46 pStatement =connection.prepareStatement(sql2);47 Object pps[][] = newObject[items.size()][];48 for(int i = 0; i < items.size(); i++){49 String id =IdGeneratorKey.getPrimaryKey();50 OrdersItem item =items.get(i);51 pStatement.setString(1,id);52 pStatement.setInt(2,item.getNum());53 pStatement.setFloat(3,item.getPrice());54 pStatement.setString(4,orders.getId());55 pStatement.setString(5,item.getBook().getId());56 pStatement.executeUpdate();57 }58 }59 } catch(SQLException e) {60 e.printStackTrace();61 }finally{62 JdbcUtil.close(connection, pStatement, resultSet);63 }64 }65

66 //根据用户的id查询属于自己的订单

67 public ListfindOrdersByUsersId(String id) {68 connection =JdbcUtil.getConnection();69 try{70 pStatement = connection.prepareStatement("select * from orders where user_id=? order by orderId desc;");71 pStatement.setString(1,id);72 resultSet =pStatement.executeQuery();73 List list=new ArrayList();74 Orders order = null;75 while(resultSet.next()){76 //创建Orders对象

77 order = newOrders();78 order.setId(resultSet.getString("id"));79 order.setOrderId(resultSet.getString("orderId"));80 order.setNum(resultSet.getInt("num"));81 order.setState(resultSet.getInt("state"));82 order.setPrice(resultSet.getFloat("price"));83 //order.setUser(rs.getString("user_id"));

84 list.add(order);85 }86 returnlist;87 } catch(SQLException e) {88 e.printStackTrace();89 throw newRuntimeException();90 }finally{91 JdbcUtil.close(connection, pStatement, resultSet);92 }93 }94

95 //根据id查看订单的详细信息(订单明细、图书明细、当前用户,都要查询出来)

96 publicOrders findOrdersById(String ordersId) {97 connection =JdbcUtil.getConnection();98 try{99 pStatement = connection.prepareStatement("select * from orders where id=?");100 pStatement.setString(1,ordersId);101 resultSet =pStatement.executeQuery();102 Orders orders = null;103 while(resultSet.next()){104 //创建Orders对象

105 orders = newOrders();106 orders.setId(resultSet.getString("id"));107 orders.setOrderId(resultSet.getString("orderId"));108 orders.setNum(resultSet.getInt("num"));109 orders.setState(resultSet.getInt("state"));110 orders.setPrice(resultSet.getFloat("price"));111 //orders.setUser(rs.getString("user_id"));

112 }113 if(orders != null){114 //查询用户信息:少的一方,不管有没有需求,默认都是查出来的

115 pStatement = connection.prepareStatement("select * from Users where id=(select user_id from orders where id=?)");116 pStatement.setString(1,ordersId);117 resultSet =pStatement.executeQuery();118 User user = null;119 while(resultSet.next()){120 //创建User对象

121 user = newUser();122 user.setId(resultSet.getString("id"));123 user.setUserName(resultSet.getString("userName"));124 user.setPassWord(resultSet.getString("passWord"));125 user.setCellPhone(resultSet.getString("cellPhone"));126 user.setMobilePhone(resultSet.getString("mobilePhone"));127 user.setAddress(resultSet.getString("address"));128 user.setEmail(resultSet.getString("email"));129 }130 orders.setUser(user);131 //订单明细

132 pStatement = connection.prepareStatement("select * from ordersitem where orders_id=?");133 pStatement.setString(1,ordersId);134 resultSet =pStatement.executeQuery();135 List items=new ArrayList();136 OrdersItem or=null;137 while(resultSet.next()){138 or=newOrdersItem();139 or.setId(resultSet.getString("id"));140 or.setNum(resultSet.getInt("num"));141 or.setPrice(resultSet.getFloat("price"));142 items.add(or);143 }144 //查询图书的信息

145 if(items != null && items.size() > 0){146 pStatement = connection.prepareStatement(("select * from Book where id=(select book_id from ordersitem where id=?)"));147 for(OrdersItem item:items){148 pStatement.setString(1,item.getId());149 resultSet =pStatement.executeQuery();150 Book book = null;151 while(resultSet.next()){152 book = newBook();153 book.setId(resultSet.getString("id"));154 book.setName(resultSet.getString("name"));155 book.setAuthor(resultSet.getString("author"));156 book.setPrice(resultSet.getFloat("price"));157 book.setImage(resultSet.getString("image"));158 book.setDescription(resultSet.getString("description"));159 book.setCategory_id(resultSet.getString("category_id"));160 item.setBook(book);161 }162 }163 }164 orders.setItems(items);165 }166 returnorders;167 }catch(SQLException e) {168 e.printStackTrace();169 throw newRuntimeException();170 }finally{171 JdbcUtil.close(connection, pStatement, resultSet);172 }173 }174

175 //下面几个方法 都是 后台内容 订单发货处理176 //显示所有未发货的订单,还要查询出是哪个用户的

177 public List findOrdersByState(inti) {178 connection =JdbcUtil.getConnection();179 try{180 pStatement = connection.prepareStatement("select * from orders where state=? order by orderId desc");181 pStatement.setInt(1,i);182 resultSet =pStatement.executeQuery();183 List lo = new ArrayList();184 Orders order = null;185 while(resultSet.next()){186 order = newOrders();187 order.setId(resultSet.getString("id"));188 order.setOrderId(resultSet.getString("orderId"));189 order.setNum(resultSet.getInt("num"));190 order.setState(resultSet.getInt("state"));191 order.setPrice(resultSet.getFloat("price"));192 //order.setUser(rs.getString("user_id"));

193 lo.add(order);194 }195 if(lo != null && lo.size() > 0){196 //查询用户信息:少的一方,不管有没有需求,默认都是查出来的

197 pStatement = connection.prepareStatement("select * from Users where id=(select user_id from orders where id=?)");198 for(Orders ord:lo){199 pStatement.setString(1,ord.getId());200 resultSet =pStatement.executeQuery();201 while(resultSet.next()){202 User user = newUser();203 user.setId(resultSet.getString("id"));204 user.setUserName(resultSet.getString("userName"));205 user.setPassWord(resultSet.getString("passWord"));206 user.setCellPhone(resultSet.getString("cellPhone"));207 user.setMobilePhone(resultSet.getString("mobilePhone"));208 user.setAddress(resultSet.getString("address"));209 user.setEmail(resultSet.getString("email"));210 ord.setUser(user);211 }212 }213 }214 returnlo;215 } catch(SQLException e) {216 e.printStackTrace();217 throw newRuntimeException();218 }finally{219 JdbcUtil.close(connection, pStatement, resultSet);220 }221 }222

223 //把已寄出的商品,改成已发货状态

224 public voidsureOrders(String ordersId) {225 connection =JdbcUtil.getConnection();226 try{227 pStatement = connection.prepareStatement("update orders set state=? where id=?");228 pStatement.setInt(1,1);229 pStatement.setString(2,ordersId);230 pStatement.executeUpdate();231 } catch(SQLException e) {232 e.printStackTrace();233 }finally{234 JdbcUtil.close(connection, pStatement, resultSet);235 }236 }237 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值