private QueryRunner qr=new QueryRunner(JdbcUtil.getDataSource());

本文详细介绍了如何使用Java和Apache Commons DBUtils实现订单管理功能,包括添加订单、查询所有订单、查询特定用户订单、根据发货状态查询订单及更新订单状态等核心功能。
package com.itheima.tfy.dao.impl;


import java.util.List;


import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;


import com.itheima.tfy.domain.Orders;
import com.itheima.tfy.domain.User;
import com.itheima.tfy.exception.DaoException;
import com.itheima.tfy.util.BookStoreLogger;
import com.itheima.tfy.util.JdbcUtil;


public class OrdersDaoImpl {
private QueryRunner qr=new QueryRunner(JdbcUtil.getDataSource());
public void addOrders(Orders orders,User user){
try{
String sql="insert into orders (id,ordernum,num,totalprice,state,user_id) values(?,?,?,?,?,?)";
Object[]params={orders.getId(),orders.getOrdersNum(),orders.getNum(),orders.getTotalPrice(),orders.isState(),user.getId()};
qr.update(sql, params);

}catch(Exception e){
BookStoreLogger.error("添加订单失败");
throw new DaoException(e);
}
}
public List<Orders> findAllOrders(Orders orders){
try{
String sql="select * from orders ";
return qr.query(sql, new BeanListHandler<Orders>(Orders.class));

}catch(Exception e){
BookStoreLogger.error("查询所有订单失败");
throw new DaoException(e);
}
}
public Orders findMyOrders(User user){
try{
String sql="select * from orders where user_id=?";
return qr.query(sql, new BeanHandler<Orders>(Orders.class),user.getId());

}catch(Exception e){
BookStoreLogger.error("查询我的订单失败");
throw new DaoException(e);
}
}
public List<Orders> findOrdersByUserId(String userId) {
try{
String sql="select * from orders where user_id=?";
return qr.query(sql, new BeanListHandler<Orders>(Orders.class),userId);

}catch(Exception e){
BookStoreLogger.error("查询我的订单失败");
throw new DaoException(e);
}
}
public List<Orders> findOrdersByState(boolean state) {
try{
String sql="select * from orders where state=?";
return qr.query(sql, new BeanListHandler<Orders>(Orders.class),state);

}catch(Exception e){
BookStoreLogger.error("根据发货状态查询订单失败");
throw new DaoException(e);
}
}
public void updateOdersBySate(boolean state,String ordersId) {
try{
String sql="update orders set state=? where id=?";
Object[]params={state,ordersId};
qr.update(sql, params);
}catch(Exception e)
{
BookStoreLogger.error("根据发货状态更新数据库 orders表失败!!!");
throw new DaoException(e);
}
}


}
第5关:购物车操作 400 学习内容 参考答案 记录 评论 本关任务 JDBC查询方法封装 购物车相关信息介绍 相关知识(略) 编程要求 测试说明 本关任务 为了能进行购物车的修改、添加、删除操作,本关需要借助JDBC,对数据库表t_cart、t_goods表进行操作。 为了完成本关任务,需要了解: JDBC更新方法封装; 购物车相关信息介绍。 JDBC查询方法封装 为了方便JDBC操作,平台进行的JDBC更新方法进行了封装,封装类com.educoder.dao.impl.BaseDao。 public static boolean operUpdate(String sql, List<Object> p) { Connection conn = null; PreparedStatement pste = null; int res = 0; conn = getConn(); try { pste = conn.prepareStatement(sql); if (p != null) { for (int i = 0; i < p.size(); i++) { pste.setObject(i + 1, p.get(i)); } } res = pste.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { releaseAll(null, pste, conn); } return res > 0;// } 购物车相关信息介绍 MYSQL用户名 MYSQL密码 驱动 URL root 123123 com.mysql.jdbc.Driver jdbc:mysql://127.0.0.1:3306/online_shop?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true com.educoder.entity.Goods字段及方法; 字段 描述 类型 get方法 set方法 goodsId 商品Id String getGoodsId() setGoodsId(String goodsId) goodsName 商品名 String getGoodsName() setGoodsName(String goodsName) goodsImg 展示于主页的图 String getGoodsImg() setGoodsImg(String goodsImg) goodsPrice 价格 BigDecimal getGoodsPrice() setGoodsPrice(BigDecimal goodsPrice) goodsNum 库存数量 Integer getGoodsNum() setGoodsNum(Integer goodsNum) salesNum 销售数量 Integer getSalesNum() setSalesNum(Integer salesNum) goodsSize 商品规格 String getGoodsSize() setGoodsSize(String goodsSize) goodsFrom 商品产地 String getGoodsFrom() setGoodsFrom(String goodsFrom) goodsTime 保质期 String getGoodsTime() setGoodsTime(String goodsTime) goodsSaveCondition 存储条件 String getGoodsSaveCondition() setGoodsSaveCondition(String goodsSaveCondition) goodsDescribe 商品描述介绍 String getGoodsDescribe() setGoodsDescribe(String goodsDescribe) goodsExplain 对商品简短说明 String getGoodsExplain() setGoodsExplain(String goodsExplain) goodsClass 所属类别 String
最新发布
09-22
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值