三、找错题20分(共5处错误,每处4分)
现需为网上书店提供一个接口,用于查询某笔订单对应的明细编号,书籍编号以及实际价格,并且按明细编号排序。表结构如下所示:
字段描述
字段名
类型
明细编号
ORDERDETAILID
VARCHAR2(50)
订单号
ORDERID
VARCHAR2 (50)
书籍编号
BOOKID
VARCHAR2 (50)
原价
BOOKPRICE
NUMBER (10,2)
折扣率
BOOKRATE
NUMBER(4,2)
备注
MEMO
VARCHAR2 (4000)
代码如下:
public Map getorderdetail(String orderId ){
String sql = "select * from orderdetails" ;
sql += " where orderId=" + orderId ;
sql += " order by orderDetailId" ;
//注:getConnection为伪代码,用于获取数据库连接
java.sql.Statement st = getConnection().createStatement() ;
ResultSet rs = st.executeQuery(sql) ;
Map a = new HashMap() ;
OrderDetail orderDetail = new OrderDetail() ;
while(rs.next()){
orderDetail.setOrderDetailId(rs.getString(1)) ;
orderDetail.setOrderId(rs.getString(2)) ;
orderDetail.setBookId(rs.getString(3)) ;
orderDetail.setBookPrice(rs.getDouble(4)) ;
orderDetail.setBookRate(rs.getDouble (5)) ;
orderDetail.setMemo(rs.getString(6)) ;
a.put(orderDetailId , orderDetail) ;
}
return a ;
}
现需尽可能提高代码的运行效率及可维护性,请指出上面代码需改正(改进)的地方(共七种),并说明原因及改正(改进)的方法。