月考总结:增删改查的速度真垃圾,12点半结束的考试15点半终于调错调完了… 啊 贼垃圾。
总结一下问题:
1) 多表联查的 update方法不熟练,浪费时间;
public interface GoodsDAO {
List<Goods> FindGoodListByStatus(int status);
List<Goods> FindGoodListByDistrict(int districtnum);
int update(Goods g);
}
/**
* 更新 district 以外的内容
*/
@Override
public int update(Goods g) {
StringBuffer sql = new StringBuffer("update goods set ");
sql.append("goods_name=?,goods_price=?,goods_count=?,bill_status=? ");
sql.append("where id=?");
Object[] param = {g.getName(),g.getPrice(),g.getCount(),g.getStatus().getStatus(),g.getId()};
int num = executeUpdate(sql.toString(),param);
if(rs!=null){
System.out.println("更新成功!");
}else{
System.out.println("更新失败!");
}
return num;
}
public class Update {
public static void main(String[] args) {
GoodsDAO dao = new GoodsIMP();
Goods goods1 = dao.FindGoodsById(10);
// 根据id获取 goods1的 对象
BillStatus status = new BillStatus(0);
// 设置 BillStatus 对象(为了添加goods的status参数)
Goods goods = new Goods(goods1.getId(),"啦啦",status,100,10,goods1.getTime());
// goods1.getTime()是获取时间,修改方法不需要修改 time,延续本身的 time
int num = dao.update(goods);
if(num>0){
System.out.println("成功!");
}else{
System.out.println("失败了!");
}
}
}
2) 后台获取了 getParameter(“id”),但是前台没有写 name,于是报null 异常
<td>商品编号</td>
<td><input type="text" value="<%=request.getAttribute("id")%>" name="id"></td>
3)在获取 statusList 时,居然脑抽使用了
List<BillStatus> statusList = new ArrayList<BillStatus>();
这个创建的是空 list 啊!!!
应该调用 FindList 的方法:
List<BillStatus> statusList = bill.SFindStatus();
4) 默认订单状态的显示
<td>订单状态</td>
<td>
<select name="status">
<%
// 获得 statusList
List<BillStatus> statusList = (List<BillStatus>)request.getAttribute("statusList");
// 获得 后台中特定对象的BillStatus 对象
BillStatus mystatus = (BillStatus)request.getAttribute("bill_status");
for(BillStatus s:statusList){
// 如果statusList中 s 的状态数字等于mystatus的状态数字,就选定状态,剩余都没有选中
if(s.getStatus()==mystatus.getStatus()){
%>
<option value="<%=s.getStatus()%>" selected><%=s.getStatusName()%></option>
<%
}else {
%>
<option value="<%=s.getStatus()%>"><%=s.getStatusName()%></option>
<%
}
}
%>
</select>
</td>
5)要分清是FindByStatus 还是 FindByDistrict
List<Goods> FindGoodListByStatus(int status);
List<Goods> FindGoodListByDistrict(int districtnum);